Module build failed: Error: [mpvue-loader] need "fileExt" option in file "build/vue-loader.conf.js",init a new project and copy the directory "build/" to this porject, or just check the "fileExt" option
at Object.module.exports (E:\git\mini_nr\mini20190104\node_modules_mpvue-loader@1.2.2@mpvue-loader\lib\loader.js:55:11)
17. Cannot assign to read only property 'exports' of object '#<Object>' 编译报错,这是因为引用第三方插件的时候,使用了module.exports的写法, webpack支持require的写法,但不能混合使用import 和module.exports。 [相关issues](https://github.com/Meituan-Dianping/mpvue/issues/472)解决方案是更新根目录下的.babelrc文件配置如下:
缘起
写小程序要追溯到2018年11月,公司有个需求,要在两周内上架一款小程序,斟酌再三,选择代价更小的mpvue。这篇文章是基于有一定vue使用经验的童鞋。
--------------华丽的分割线-------------
生命周期
让我们先来看一下mpvue官网的图
通过上图我们可以得出页面生命周期执行顺序如下:(很重要,做小程序一定要明白的知识点)
遇到的问题集锦
不支持v-html。总所周知小程序没有dom这个概念。
不支持部分javascript渲染表达式,如:(方法的调用,过滤器,判断,运算等等)。
不支持绑定一个对象到style或class
export default { data() { return { classObj: { isShow: true }, styleObj: { 'height': '100px' } }
wx.switchTab({ url });
onUnload() { if (this.$options.data) { Object.assign(this.$data, this.$options.data()); } }
axios.defaults.adapter = function (config) { return new Promise((resolve, reject) => { console.log(config) // TODO wx.request() }) }
// 法 1 var url = "../index/main?id=" + this.option wx.navigateTo({url}) // 法 2 <navigator url="'../index/main?id='+id>
// 法 1 onLoad (options) { let id = options.id } // 法 2 this.$root.$mp.query.id // $mp必须加,相当于mpvue包了一层
{ "navigationBarTitleText": "", "enablePullDownRefresh": true,// 必须要写的配置 "backgroundColor": "#fff" }
// 和methods平级 onPullDownRefresh() { // 下拉刷新 todo }, onReachBottom() { // 上拉加载更多 todo }
// 法 1 wx.navigateBack({ delta: 1 }) // 法 2 wx.redirectTo({ url })
Failed to compile with 16 errors 10:34:43
error in ./src/main.js
Module build failed: Error: [mpvue-loader] need "fileExt" option in file "build/vue-loader.conf.js",init a new project and copy the directory "build/" to this porject, or just check the "fileExt" option at Object.module.exports (E:\git\mini_nr\mini20190104\node_modules_mpvue-loader@1.2.2@mpvue-loader\lib\loader.js:55:11)
"mpvue": "1.0.18", "mpvue-loader": "1.1.4",
"mpvue-template-compiler": "1.0.18"
{ "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "stage-2" ], "plugins": [ ["transform-runtime", { "polyfill": false, "regenerator": true }] ], "env": { "test": { "presets": ["env", "stage-2"], "plugins": ["istanbul"] } } }