【问题标题】:Command `npm start` does nothing命令 `npm start` 什么都不做
【发布时间】:2014-11-17 19:29:41
【问题描述】:

在我的 Node 项目目录中输入 npm start 后,我看到旋转管道符号表明 npm 正在加载。但是,此图形会无限期地显示,并且没有任何反应。不提供错误消息。如何解决或至少诊断此问题?

我的package.json如下:

{
  "name": "Project_Name",
  "version": "0.0.1",
  "private": true,
  "main": "./bin/www",
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "express": "~4.2.0",
    "static-favicon": "~1.0.0",
    "morgan": "~1.0.0",
    "cookie-parser": "~1.0.1",
    "body-parser": "~1.0.0",
    "debug": "~0.7.4",
    "jade": "~1.3.0",
    "request": "~2.39.0",
    "oauth-1.0a": "~0.1.1",
    "passport": "~0.2.0",
    "express-session": "~1.7.2",
    "passport-local": "~1.0.0",
    "connect-flash": "~0.1.1"
  }
}

我怀疑缺少依赖项可能是个问题,但这似乎不是问题。我运行npm-install-missing 模块并得到以下结果:

【问题讨论】:

  • 请发布您的package.json 和任何其他相关文件。
  • 您的 start 脚​​本没有调用 JS 文件...应该不是:"start": "node ./bin/www/server.js"
  • @mccannf 不,这就是 Express 4 的工作方式。
  • 您是否可以从浏览器访问您的服务器(localhost:8000 或任何端口)?

标签: node.js npm


【解决方案1】:

问题与依赖关系有关。首先,我安装了npm-install-missing 模块来查看应用的依赖:

npm install -g npm-install-missing

安装模块后,我可以运行它来查看需要更新哪些依赖项:

npm-install-missing

结果在我上面的问题中显示为屏幕截图。你会注意到express-sessioncrypto-jspassport 是红色的。我需要安装每个模块的预期版本:

npm install -g express-session@1.7.6

npm install -g crypto-js@3.1.2

npm install -g passport@0.2.1

安装依赖后,我再次运行npm start。该应用程序出现在localhost:3000

【讨论】:

    【解决方案2】:

    1- 您必须安装连接和服务器静态模块

    npm install connect serve-static
    

    2- 您必须创建 server.js 文件,其中包含:

    var connect = require('connect');
    var serveStatic = require('serve-static');
    connect().use(serveStatic(__dirname)).listen(8000);
    

    3- 运行你的命令:

    node server
    

    4- 用于测试在你的 nodejs 目录中添加一个 HTML 文件 (index.html)

    5- 打开浏览器并输入:

    http://localhost:8000/index.html

    服务器正在运行,您的页面 html 已被复制

    【讨论】:

      【解决方案3】:

      其实每当你运行npm start

      它运行一个包的“启动”脚本,如果提供的话。如果未指定版本,则启动“活动”版本。

      所以,npm 会查看您的 package.json 文件,该文件应该有类似的内容

      "start": "webpack-dev-server --hot"

      然后它会这样做。如果 npm 找不到您的启动脚本,则默认为:

      节点服务器.js

      【讨论】:

        【解决方案4】:

        在几个uninstallinstallnodenpm 之后,问题是我在.npmrc 中的~/ 目录中设置了ignore-scripts=true

        所以要解决这个问题:

        nano ~/.npmrc
        

        删除ignore-scripts=true行或将其更改为

        ignore-scripts=false
        

        在尝试不同的极端解决方案大约一个小时后,这解决了我的问题。

        【讨论】:

        • 这里有同样的问题。我设置了这个选项,因为我读过脚本可以用作节点包漏洞利用,这是一种防止这种情况的方法。因此,为了在默认情况下进行快速工作,我们需要禁用 npm 上的安全功能。哦快乐。 blog.npmjs.org/post/141702881055/…
        【解决方案5】:

        我遇到了类似的问题,我尝试了上述所有方法,但没有奏效 然后我注意到我的项目路径中有 node_module 文件夹,它不属于这个项目。它被错误地安装了很久。一旦我删除了那个特定的文件夹,我的 react 项目就开始工作了

        【讨论】:

          【解决方案6】:

          从您的控制台 npm config set ignore-scripts falsesudo npm config set ignore-scripts false 运行此命令。这适用于 linux 或 mac 用户。

          【讨论】:

          • 这解决了我在 Windows 中的问题 -> npm config set ignore-scripts false。谢谢@Hamfri
          猜你喜欢
          • 1970-01-01
          • 2013-05-01
          • 2023-04-04
          • 2021-06-05
          • 2020-04-23
          • 2016-02-28
          • 2017-03-22
          • 1970-01-01
          • 2022-01-09
          相关资源
          最近更新 更多