唯品秀前端博客

昨天有朋友问我要小程序的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锁定的只是大版本,拉取的都是小版本中最新的版本。所以,这东西也不是那么靠谱。

    本站所有文章、图片、资源等如无特殊说明或标注,均为来自互联网或者站长原创,版权归原作者所有;仅作为个人学习、研究以及欣赏!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,邮箱:343049466@qq.com
    赞(1) 打赏
    标签:

    上一篇:

    下一篇:

    相关推荐

    0 条评论关于"mpvue项目报错[mpvue-loader] need “fileExt” option in file “build/vue-loader.conf.js”"

    表情

    最新评论

      暂无留言哦~~
    谢谢你请我吃鸡腿*^_^*

    支付宝扫一扫打赏

    微信扫一扫打赏