复制VueJS项目后执行npm run serve报错的技术咨询
解决Vue项目复制后
npm run serve提示找不到../package.json的问题 我之前碰到过一模一样的问题,根源其实很简单:你用cp -r复制项目时把node_modules目录也一起拷贝了——这个目录里的很多脚本(比如node_modules/.bin/vue-cli-service)依赖的是原项目的相对路径,复制到新目录后这些路径直接失效了,哪怕根目录的package.json已经复制过来也没用。
具体解决步骤:
清理无效的
node_modules
如果已经完成复制,先删除新目录里的node_modules:rm -rf clone_project/node_modules下次复制项目时可以直接跳过这个目录,避免重复踩坑:
cp -r project/ clone_project/ && rm -rf clone_project/node_modules用
rsync会更高效便捷:rsync -av --exclude='node_modules' project/ clone_project/重新安装项目依赖
进入复制后的项目目录,执行依赖安装命令:cd clone_project npm install启动项目
现在再运行npm run serve就可以正常启动项目了:npm run serve
错误原因详解:
node_modules/.bin下的vue-cli-service是一个脚本文件,里面有一行代码是require('../package.json')——这里的../是相对于脚本所在的node_modules/.bin目录,本来应该指向对应依赖包的package.json,但复制原项目的node_modules后,部分依赖的路径关联已经被破坏,导致脚本找不到正确的文件。
本质上,node_modules是依赖安装后的临时产物,不应该通过复制来复用,每个项目都应该在自己的目录下重新安装依赖,这样才能保证所有路径和依赖关联都是正确的。
内容的提问来源于stack exchange,提问作者paupaulaz
相关产品推荐
相关产品推荐

