运行 mpvue-simple 抛出 Module build failed: TypeError: Cannot read property 'platform' of undefined
JunbinDeng opened this issue · comments
[扼要问题描述]
mpvue 版本号:
mpvue-simple @1.0.17
mpvue-template-compiler @2.0.0
最小化复现代码:
// 示例代码:
npm i mpvue-simple -g
echo -e '<template><h1>Hello {{msg}}!</h1></template>\n<script>\nexport default {\n data () {\n return { msg: 233 }\n }\n}\n</script>\n<style>\n h1 {\n color: red;\n }\n</style>' > App.vue
mpvue-simple --build
问题复现步骤:
- 按照 mpvue-simple 的官方文档在控制台中执行命令
- 控制台中抛出以下错误
ERROR in ./~/mpvue-simple/~/mpvue-loader/lib/template-compiler?{"id":"data-v-818f14d6","hasScoped":true,"transformToRequire":{"video":"src","source":"src","img":"src","image":"xlink:href"}}!./~/mpvue-simple/~/mpvue-loader/lib/selector.js?type=template&index=0!./src/pages/index/index.vue
Module build failed: TypeError: Cannot read property 'platform' of undefined
at Object.compileToWxml (/Users/junbindeng/WebstormProjects/ceiling-animator/node_modules/mpvue-simple/node_modules/mpvue-template-compiler/build.js:5812:20)
at genComponentWxml (/Users/junbindeng/WebstormProjects/ceiling-animator/node_modules/mpvue-simple/node_modules/mpvue-loader/lib/mp-compiler/index.js:45:75)
at createWxml (/Users/junbindeng/WebstormProjects/ceiling-animator/node_modules/mpvue-simple/node_modules/mpvue-loader/lib/mp-compiler/index.js:92:19)
at Object.compileWxml (/Users/junbindeng/WebstormProjects/ceiling-animator/node_modules/mpvue-simple/node_modules/mpvue-loader/lib/mp-compiler/index.js:101:10)
at Object.module.exports (/Users/junbindeng/WebstormProjects/ceiling-animator/node_modules/mpvue-simple/node_modules/mpvue-loader/lib/template-compiler/index.js:40:15)
@ ./src/pages/index/index.vue 8:0-380
Build failed with errors.
观察到的表现:
mpvue-template-compiler/build.js 的 compileToWxml 方法 fileExt 参数未定义导致异常发生
function compileToWxml (compiled, options, fileExt) {
var code;
switch(fileExt.platform) {
case 'swan':
code = compileToWxml$2(compiled, options);
break
case 'wx':
code = compileToWxml$1(compiled, options);
break
default:
code = compileToWxml$1(compiled, options);
}
return code
}