我不是 Vuejs 或 Vuecli 方面的专家,但我确实设法让东西正常工作。 在使用 Vuecli3 和 webpack 之前我有一个项目,现在当我在几周后打开它进行更改时,我在开发模式下收到以下错误
$ vue-cli-service serve --open --mode development --dashboard
internal/modules/cjs/loader.js:582
throw err;
^
Error: Cannot find module '../package.json'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
at Function.Module._load (internal/modules/cjs/loader.js:506:25)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/Volumes/Drobo/Dropbox/NASDAQ Dubai/Marketdata-6-Indices/node_modules/.bin/vue-cli-service:5:25)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
任务总时长:0.15秒
package.json 文件和 .lock 文件就在根目录中。不知道编译时出现这个错误的原因是什么。
非常感谢任何帮助
正如 @vesperknight 在评论中提到的,当您将项目的文件夹移动到另一个位置时,往往会发生此问题。
要解决此问题(在 Linux 上),请从项目的根目录:
删除现有节点模块。
rm -r node_modules
重新安装所有依赖项:
npm install
第一步似乎很重要。
当我尝试使用以下命令压缩我的 Vue 应用程序时,遇到了完全相同的问题:
zip -r myzip.zip node_modules/ dist/ etc...
将 zip 移动到其他位置并解压,然后尝试运行该应用程序后,它没有按预期工作。
问题的根本原因竟然与
node_modules/.bin
目录有关。该目录包含一堆未添加到 zip 文件中的符号链接,包括 vue-cli-service
: 的符号链接
vue-cli-service -> ../@vue/cli-service/bin/vue-cli-service.js
该文件导入了位于
node_modules/@vue/cli-service/
目录中的 package.json 文件。在压缩过程中对该符号链接的不当处理导致应用程序在提取后无法运行(由于上述目录中缺少 package.json)。
为了解决这个问题,我必须对 zip 命令使用
-y
标志,这样它才能正确处理符号链接。我想这可能与你的问题有关。确保在移动 Vue 项目时正确复制符号链接。