我已经使用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'
我该如何解决?
答案 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
我希望这可以为遇到我问题的任何人避免头痛。