将NodeJS与Express一起使用时,当命令正常运行时,npm start不会执行任何操作

时间:2019-08-02 20:45:57

标签: node.js express npm

更新:

我为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 startnode index.js做相同的事情,因为它使用相同的命令,如here所述。

我做错了什么?

我尝试过:

  1. 运行npm cache clean --force
  2. 删除node_modules并运行npm install
  3. 删除所有节点痕迹并重新安装其他版本

编辑:项目结构看起来像

D:\temp\test-app
├── node_modules
├── index.js
├── package-lock.json
└── package.json

2 个答案:

答案 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