引言

小方是一名大三的学生,今天,他入职了某公司的位前端实习生岗位,踌躇满志的他 clone 了代码打算大干一场。结果卡在 npm run build ,报错信息(如下)。

$ npm run build

> system@0.1.0 build /usr/local/docker/gitlab-ee-12.4.1/builds/63s9Rzjq/0/dev_web/system
> vue-cli-service build --mode production


-  Building for production...
 ERROR  Failed to compile with 3 errors下午3:24:46

These dependencies were not found:

* pdfjs-dist/es5/build/pdf.js in ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--12-0!./node_modules/_thread-loader@2.1.3@thread-loader/dist/cjs.js!./node_modules/_babel-loader@8.2.2@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.7@vue-loader/lib??vue-loader-options!./node_modules/_vue-pdf@4.2.0@vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
* worker-loader!pdfjs-dist/es5/build/pdf.worker.js in ./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--12-0!./node_modules/_thread-loader@2.1.3@thread-loader/dist/cjs.js!./node_modules/_babel-loader@8.2.2@babel-loader/lib!./node_modules/_cache-loader@4.1.0@cache-loader/dist/cjs.js??ref--0-0!./node_modules/_vue-loader@15.9.7@vue-loader/lib??vue-loader-options!./node_modules/_vue-pdf@4.2.0@vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
* pdfjs-dist/es5/web/pdf_viewer in ./node_modules/_vue-pdf@4.2.0@vue-pdf/src/pdfjsWrapper.js

To install them, you can run: npm install --save pdfjs-dist/es5/build/pdf.js worker-loader!pdfjs-dist/es5/build/pdf.worker.js pdfjs-dist/es5/web/pdf_viewer
 ERROR  Build failed with errors.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! educationsystem@0.1.0 build: `vue-cli-service build --mode production`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the system@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-06-08T07_24_46_457Z-debug.log
ERROR: Job failed: exit status 1

What?连项目都跑不起来,第一天入职就要被劝退吗?!不甘心的他用尽了 百度 、Google 查了一整天也没查到问题所在……

有点意思

领导下午开完会后路过他的工位,看到焦头烂额的小方就问了 一句环境搭建好了嘛。此时,小方早已被这个问题折磨的甚是难受,将问题反馈给了领导。没想到领导温和的放下手中的水杯,做到小方的工位上,仔细排查起来。领导很快定位到了node_moudles中所依赖包的问题,但好像这个问题比较棘手,半个小时过去了也未能解决。最终,领导将自己电脑中的node_moudels拷贝了过来,替换后发现了问题所在。
在这里插入图片描述
可以模糊的看到,原来小方install了2.8.335版本的pdfjs-dist,而领导用的却是2.5.207,而这个较新的版本与node环境并不兼容导致了报错。

解决

这个问题其实出在开发团队中,前端项目不应该将用于锁定版本的package-lock.json文件放到gitignore中,因为开发最关键的一个因素就是稳定而不是最新。
希望能解决你的问题,See you~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐