昨天有朋友问我要小程序的demo,最好是入门级的,但有一定的实战完整性的,我就把去年做的一个mpvue项目仓库地址给了他,让他去瞅瞅。但当他clone下来后,发现项目死活不能运行。一时之间,我也懵逼,说不上来是什么问题,但我可以确定的是,我最后一次提交时候,项目是没有什么问题的,于是我用mac把之前的代码运行下(mac上有这个项目),确实没问题。
考虑到我是在家用mac写的,可能和windows运行环境有些不同,于是来公司在windows环境下,重新clone代码,运行,真的报错了,同样一份代码,难道真的是电脑系统问题?又或者是node_modules出了问题?
报错信息
1 2
| 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 :\personal\mpvue\node_modules\_mpvue -loader @1 .4 .0 @mpvue -loader\lib\loader .js :55:11) |
经过一系列的排查,最终确定,是因为mpvue-loader的版本问题,当我把下面几个包直接固定死,再去重新npm install,然后项目重新可以运行了。
1 2 3 4 5 6 7 8 9
| package.json 中
"mpvue": "^1.0.11",
"mpvue-loader": "^1.0.13",
"mpvue-template-compiler": "^1.0.11"
改为
"mpvue": "1.0.11",
"mpvue-loader": "1.0.13",
"mpvue-template-compiler": "1.0.11" |
另一种方法
重新撸一个最新版本的mpvue项目,最新mpvue是v2版,把之前项目src中的东西再拷贝过去,,相当于整个项目升级,这个就要麻烦点,并且风险承担更大点。
关于npm 依赖包版本号~和^的区别
~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
*这意味着安装最新版本的依赖包,但缺点同上,可能会造成版本不兼容,慎用!
小结
果真是失之毫厘差之千里,npm包真是不让人放心,小版本改动升级也会导致整个项目程序崩溃。通常package-lock.json锁定的只是大版本,拉取的都是小版本中最新的版本。所以,这东西也不是那么靠谱。
「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」
共 0 条评论关于"mpvue项目报错[mpvue-loader] need “fileExt” option in file “build/vue-loader.conf.js”"
最新评论