我为Windows安装了nvm,却忘了它。它正在将其节点安装的内容投影到程序文件文件夹中。
所以我有一个非常简单的项目copied from freecodecamp
index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.log('Example app listening on port 3000!'));
package.json
{
"name": "test-app", "version": "1.0.0", "description": "", "main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"keywords": [], "author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
运行node index.js
将启动服务器并按预期运行,但是如果运行npm start
,它将返回:
> test-app@1.0.0 start D:\temp\test-app
> node index.js
Microsoft Windows [Version 10.0.17134.885]
(c) 2018 Microsoft Corporation. All rights reserved.
然后退出。
我希望npm start
与node index.js
做相同的事情,因为它使用相同的命令,如here所述。
我做错了什么?
我尝试过:
npm cache clean --force
npm install
编辑:项目结构看起来像
D:\temp\test-app
├── node_modules
├── index.js
├── package-lock.json
└── package.json
答案 0 :(得分:0)
只需将您的index.js
文件重命名为server.js
,然后完全删除"start":
脚本。然后npm start
将正常工作。
{
"name": "test-app", "version": "1.0.0", "description": "", "main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [], "author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
答案 1 :(得分:0)
请在您的npm run start
所在的目录中尝试使用npm start
而不是package.json