找不到模块在错误的目录中查找

时间:2020-05-19 09:23:42

标签: node.js npm

我已经使用nodemon安装了npm i -g nodemon,并且它安装在了以下全局路径中:

C:\ Users \ John \ AppData \ Roaming

所以我使用npm i -y开始了一个新项目,并使用以下命令创建了一个简单的index.js入口点:

{
  "name": "scp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1"
  }
}

当我使用nodemon启动应用程序时,我得到了:

错误:找不到模块'C:\ Program Files \ nodejs \ node_modules \ nodemon \ bin \ nodemon.js'

如您所见,路径实际上是错误的,所以我尝试使用以下方式更改它:

npm config set prefix C:\Users\John\AppData\Roaming
npm config get prefix

返回:

C:\ Users \ John \ AppData \ Roaming

问题在于,当我使用nodemon启动应用程序时,会收到相同的错误消息,因为路径总是错误的:

错误:找不到模块'C:\ Program Files \ nodejs \ node_modules \ nodemon \ bin \ nodemon.js'

我该如何解决?

3 个答案:

答案 0 :(得分:2)

您可以使用以下方法尝试在当前package.json中安装nodemon吗?

npm i --save nodemon

然后将您的启动脚本更改为

"start": "nodemon index.js"

希望它对您有用

答案 1 :(得分:0)

您始终可以将nodemon作为开发依赖项,并在package.json的脚本部分中进行指定。您不需要时就全局安装它。

例如(package.json)

 "scripts": {
    "start": "nodemon index.js"
  },

关于您的原始问题... 它必须与您的npm / node的配置有关。我建议使用类似NVM之类的东西来本地处理多个npm / node实例和配置。对于使用node的任何开发人员,我总是建议使用它。

看看https://github.com/coreybutler/nvm-windows 并尝试使用本地版本的npm来了解问题的根源。 请注意,您当前的(全局)节点安装可能与NVM冲突(bin Paths等),因此您可能只需要使用来自NVM的npm / nodes即可摆脱全局节点。 / p>

答案 2 :(得分:0)

另一个引起类似错误的问题是在路径名中的任何地方都使用“&”。 npm会将软件包安装在正确的位置(“ foobar&foobar / myApp / node_modules”文件夹),但某些软件包文件的路径将错误。解决方法是重命名具有“&”的文件夹(foobar&foobar-> foobarAndfoobar),并在安装了node_modules软件包的位置运行以下命令:

rm -rf node_modules
npm install

我希望这可以为遇到我问题的任何人避免头痛。