我刚得到一个别人在做的项目。当我复制它时,我必须复制node_modules文件夹,否则它不起作用。有没有一种方法可以根据package.json
目录中的内容更新node_modules
?
答案 0 :(得分:1)
这两个步骤是向后的。 node_modules/
不应签入Git或从一台计算机共享到另一台计算机。它只是package.json
中内容的表示。该文件而非目录是JavaScript依赖项的真实来源。如果您的项目并非如此,则必须先对其进行修复,然后才能对其进行任何工作。
首先,删除node_modules
:
$ rm -rf node_modules
或者,根据每个rcdmk's答案,将其重命名,以便您参考其中的内容:
$ mv node_modules node_modules_backup
然后,使用您选择的CLI工具从package.json
重新创建它:
$ npm install # npm
$ yarn install # yarn
最后,解决由新依赖项引起的代码中的所有问题。这些将作为错误显示在服务器日志,浏览器控制台或构建输出中。如果您创建了node_modules_backup
,请将那里的子目录与新的node_modules
进行比较,以查看缺少的内容。
答案 1 :(得分:1)
正如其他人指出的那样,问题已经存在,解决该问题的一种方法是重命名node_modules
文件夹,运行npm install
或yarn install
,然后尝试执行该应用程序并找出丢失的依赖项。
如果您在旧的tree
中运行node_modules
命令并将其与新的tree
命令输出进行比较,则可以更清楚地了解缺少的内容。您无需添加所有差异,只需添加顶级差异即可。
您可以tree
(如果是Windows,则为ls -1
,而不是dir /d /b
。
答案 2 :(得分:0)
在npm中,package.json会生成node_modules,而不是相反。您应该获得具有所有依赖项的package.json并运行npm install