为啥 node.js 安装两个“node_modules”文件夹?

Posted

技术标签:

【中文标题】为啥 node.js 安装两个“node_modules”文件夹?【英文标题】:Why does node.js install two 'node_modules' folders?为什么 node.js 安装两个“node_modules”文件夹? 【发布时间】:2019-04-13 00:26:48 【问题描述】:

每当我尝试运行 npm installnpm start 时,我都会收到此错误:

bash: line 0: cd: packages/react-scripts: No such file or directory
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! aristophanes@1.0.0 start: `cd packages/react-scripts && node bin/react-scripts.js start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the aristophanes@1.0.0 start 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!     C:\Users\Aristophanes\AppData\Roaming\npm-cache\_logs\2018-11-09T12_14_19_704Z-debug.log

我不知道我为什么开始得到它。任何人都可以解释一下吗?我已经尝试卸载并再次安装,但它没有帮助。另外,我不知道为什么 node.js 在我的计算机中安装了 2 个node_modules 文件夹——一个在我的C://Program Files/nodejs/ 目录中,另一个在C://Users/Aristophanes/ 中。每个中的两个 package.json 文件是不同的。

错误日志:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start' ]
2 info using npm@6.4.1
3 info using node@v10.13.0
4 verbose config Skipping project config: C:\Users\Aristophanes/.npmrc. (matches userconfig)
5 verbose run-script [ 'prestart', 'start', 'poststart' ]
6 info lifecycle aristophanes@1.0.0~prestart: aristophanes@1.0.0
7 info lifecycle aristophanes@1.0.0~start: aristophanes@1.0.0
8 verbose lifecycle aristophanes@1.0.0~start: unsafe-perm in lifecycle true
9 verbose lifecycle aristophanes@1.0.0~start: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Aristophanes\node_modules\.bin;C:\Program Files\cmder\bin;C:\Program Files\cmder\vendor\conemu-maximus5\ConEmu\Scripts;C:\Program Files\cmder\vendor\conemu-maximus5;C:\Program Files\cmder\vendor\conemu-maximus5\ConEmu;C:\Program Files\nodejs;C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Boxstarter;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Go\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Users\Aristophanes\Go\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\Aristophanes\AppData\Local\Programs\Python\Python37;C:\Users\Aristophanes\AppData\Local\Programs\Python\Python37\Scripts;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\php;C:\ProgramData\chocolatey\bin;C:\Program Files\Geth;C:\HashiCorp\Vagrant\bin;C:\Program Files\Git\cmd;C:\composer;C:\Users\Aristophanes\AppData\Roaming\npm;C:\Program Files\nodejs\;C:\Users\Aristophanes\AppData\Roaming\local\bin;C:\Users\Aristophanes\AppData\Local\Microsoft\WindowsApps;C:\Users\Aristophanes\AppData\Local\atom\bin;C:\Users\Aristophanes\AppData\Local\Microsoft\WindowsApps;C:\Users\Aristophanes\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Aristophanes\AppData\Local\GitHubDesktop\bin;C:\Users\Aristophanes\AppData\Roaming\Composer\vendor\bin;C:\Program Files\nodejs\bin;C:\Users\Aristophanes\AppData\Roaming\npm;C:\Program Files\Git\mingw64;C:\Program Files\Git\usr\bin;C:\Program Files\cmder
10 verbose lifecycle aristophanes@1.0.0~start: CWD: C:\Users\Aristophanes
11 silly lifecycle aristophanes@1.0.0~start: Args: [ '-c',
11 silly lifecycle   'cd packages/react-scripts && node bin/react-scripts.js start' ]
12 silly lifecycle aristophanes@1.0.0~start: Returned: code: 1  signal: null
13 info lifecycle aristophanes@1.0.0~start: Failed to exec start script
14 verbose stack Error: aristophanes@1.0.0 start: `cd packages/react-scripts && node bin/react-scripts.js start`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
14 verbose stack     at EventEmitter.emit (events.js:182:13)
14 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
14 verbose stack     at ChildProcess.emit (events.js:182:13)
14 verbose stack     at maybeClose (internal/child_process.js:962:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
15 verbose pkgid aristophanes@1.0.0
16 verbose cwd C:\Users\Aristophanes
17 verbose Windows_NT 10.0.17134
18 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
19 verbose node v10.13.0
20 verbose npm  v6.4.1
21 error code ELIFECYCLE
22 error errno 1
23 error aristophanes@1.0.0 start: `cd packages/react-scripts && node bin/react-scripts.js start`
23 error Exit status 1
24 error Failed at the aristophanes@1.0.0 start script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]

【问题讨论】:

【参考方案1】:

C://Program Files/nodejs 中的那个是你要安装的全局包。

项目中的一个是项目的依赖项。

这个问题很可能是因为你在一个没有 package.json 的文件夹上运行 npm install。

【讨论】:

我在运行 npm install 的目录中有一个 package.json。 基本上与控制台中显示的错误相同。我已将其添加到问题的末尾,谢谢。 删除文件夹中的node_modules并重新安装npm 完成,但在安装结束时我得到完全相同的错误。日志太大,无法粘贴,所以这里有一个链接,谢谢dropbox.com/s/p9k4odys54q73wv/… 我想也许你必须使用 yarn 而不是 npm。检查这个:github.com/facebook/create-react-app/issues/4308【参考方案2】:

我认为你遇到了这个挑战,因为你不在你的项目文件夹中导航到你的项目文件夹然后进行安装。只需 cd 然后是你的应用程序的名称,然后按 enter 键 // 像这样:

PS C:\Users\Alice\Desktop\project-folder> cd react-app

【讨论】:

以上是关于为啥 node.js 安装两个“node_modules”文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 node.js 中使用 sendFile() 方法为两个路由提供静态文件时会出错

安装了node.js之后安装express时为啥安装不成功

为啥全新安装 node.js 和量角器会出现 `execvp` 错误没有这样的文件或目录?

为啥当我输入 node main.js 时我的不和谐机器人无法上线?

为啥我的 cpanel 没有在软件中显示设置 node.js 应用程序图标?

请教大神们,我在eclipse 安装NODE.JS调试环境时候,添加软件源网址后,啥都不出来。这是为啥阿?