为啥我在使用 npm 时收到此错误,我该如何解决?

Posted

技术标签:

【中文标题】为啥我在使用 npm 时收到此错误,我该如何解决?【英文标题】:Why am I getting this error with npm, and how do I solve it?为什么我在使用 npm 时收到此错误,我该如何解决? 【发布时间】:2022-01-14 14:24:14 【问题描述】:

我正在尝试将 PayPal 系统添加到我的 html 网站中。我正在关注本教程:https://www.youtube.com/watch?v=DNM9FdFrI1k&list=PL4eNesgScjZb3oktJK1786zI4nSET_tas&index=4

我在 9:10 进入视频,当我按照视频所示运行 npm run devStart 时,出现以下错误:

PS C:\Users\dipla\OneDrive\Desktop\USB\Argo & coding\Examples\Web design\paypal-checkout> npm run devStart

> paypal-checkout@1.0.0 devStart
> nodemon server.js

The system cannot find the path specified.
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'C:\Users\dipla\OneDrive\Desktop\USB\nodemon\bin\nodemon.js'
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 
  code: 'MODULE_NOT_FOUND',
  requireStack: []

我尝试过的事情:

我尝试重新启动我的计算机(win 10,但它已经 4 岁了)。

我尝试在我全新的 win11 笔记本电脑上做同样的事情,但我得到了同样的错误。

你应该知道的事情:

我安装了 node.js,并将它的位置添加到我的环境变量中。

这是我第一次使用 npm 和 Node.js

我正在为我正在着手开展的业务编写此代码,因此让其发挥作用很重要。

我才18岁,还在学习中。

编辑

我终于找到了导致错误的原因,但我不知道如何解决它。 这是正在发生的事情: 当我运行 npm i express ejs dotenv @paypal/checkout-server-sdk 时,它会在我的项目中安装 node_modules 文件夹,它将文件放置在您期望的位置,在我的例子中是:

C:\Users\dipla\OneDrive\Desktop\USB\Argo & coding\Examples\Web design\paypal-checkout\node_modules

但是计算机正在寻找'C:\Users\dipla\OneDrive\Desktop\USB\nodemon\bin\nodemon.js'中的\node_modules文件

如果你从错误的目录运行终端中的命令,通常你会看到这个错误,但是我的终端说

PS D:\USB\Argo & coding\Examples\Web design\paypal-checkout>

当我运行 dir 时,我得到了

 PS D:\USB\Argo & coding\Examples\Web design\paypal-checkout> dir

 Directory: D:\USB\Argo & coding\Examples\Web design\paypal-checkout


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2021-12-13  11:50 AM                node_modules
d-----        2021-12-09   6:57 PM                views
-a----        2021-12-13  11:50 AM         128194 package-lock.json
-a----        2021-12-13  11:50 AM            402 package.json
-a----        2021-12-13  11:25 AM            251 server.js

所以,我尝试将 node_modules 文件夹移动到我的计算机正在查找的目录中,并且它有效,但是,这不是我想要保留 node_modules 文件的地方。这是一个非常糟糕的位置,因为当我让我的网站上线时,mode_modules 文件夹不会在我的项目文件夹中,所以它不会被包含在内。

注意: 我正在从我的 USB 运行这个项目。如果我从头开始创建项目而不是在我的 USB 上(直接在我的桌面上),我会收到以下错误:

PS C:\Users\evand\Desktop\paypal-checkout> npm run devStart

> paypal-checkout@1.0.0 devStart
> nodemon server.js

[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'node_modules/express'
Require stack:
- C:\Users\evand\Desktop\paypal-checkout\server.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:\Users\evand\Desktop\paypal-checkout\server.js:1:17)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) 
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'C:\\Users\\evand\\Desktop\\paypal-checkout\\server.js' ]

[nodemon] app crashed - waiting for file changes before starting...

那么,我的新问题是:如何让 npm / 我的计算机在不同的目录中查找 node_modules?

【问题讨论】:

【参考方案1】:

我看到了这个解决方案,因为您使用的是外部驱动器,所以这一定是问题

getting "Error: EINVAL: invalid argument, read" for "npm install --save-dev eslint --verbose"

“由于您使用的是驱动器号 I:,您可能使用的是便携式驱动器。我在使用 FAT32 格式的 USB 记忆棒时遇到了同样的问题。我将其重新格式化为 NTFS 解决了。”

【讨论】:

我复制了我的 USB,然后将其重新格式化为 NTFS,并且命令“npm i express ejs dotenv @paypal/checkout-server-sdk”有效。但知道我收到“npm run devStart”错误。我现在 9:10 进入视频。我也尝试直接在我的桌面上执行此操作。 我用更多信息编辑了我的原始帖子 如果还有其他问题可以回答当前的问题,请标记或投票以重复关闭。仅链接的答案不是特别有用,也不会增加太多价值。 我们仍然没有找到任何解决方案。 我已经找到导致错误的原因,请查看我的原始帖子,因为我对其进行了另一次编辑。

以上是关于为啥我在使用 npm 时收到此错误,我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

npm 错误!代码 1.为啥这个错误消息会发生 npm ERR!代码1?我该如何解决

我在 Windows 上收到“npm run build”部署错误 [重复]

NPM 启动错误上的 ENOENT。为啥我会收到此错误,为啥要查找“我的图片”目录?

为啥我在打开我的 wordpress 网站时收到此消息(如何解决)?

当它不可能是真的时,为啥我会收到这个错误?

为啥我在使用 isNull 时收到此错误消息