【问题标题】:How to execute the start script with Nodemon如何使用 Nodemon 执行启动脚本
【发布时间】:2016-02-26 01:57:57
【问题描述】:

如何使用 Nodemon 从 package.json 文件执行启动脚本?

【问题讨论】:

  • 您确定可以从 package.json 执行启动脚本吗?因为据我所知, package.json 是列出所有依赖项,而 nodemon 是保持进程运行。我不太确定你在这里暗示什么?

标签: node.js nodemon


【解决方案1】:

这将是一个简单的命令

nodemon --exec npm start

【讨论】:

  • 如果我只需要运行测试而不运行应用程序怎么办?您的解决方案同时运行。
  • 这确实运行 npm start 但不会为我启动节点服务器.. 它怎么知道 server.js 在哪里?
  • 这是问题的正确答案。由用户来确保他们的 NPM 脚本确实按照他们的意愿行事。您可以直接在脚本中使用 nodemon,但这不是被要求的。这是让 nodemon 在更改时重新运行脚本的正确方法。
【解决方案2】:

在 json 包中:

{
  "name": "abc",
  "version": "0.0.1",
  "description": "my server",
  "scripts": {
    "start": "nodemon my_file.js"
  },
  "devDependencies": {
    "nodemon": "~1.3.8",
  },
  "dependencies": {

  }
}

然后你可以在终端使用npm start

Nodemon 安装:https://www.npmjs.com/package/nodemon

【讨论】:

  • 对不起,正在寻找一种方法来执行启动脚本with nodemon,而不是在启动脚本中执行nodemon。抱歉,如果不清楚。
  • npm start 不会因为缺少 nodemon 而在生产中失败?
  • npm run start 不是npm start
  • 我是 npm 的初学者。我不明白为什么我们需要指定启动脚本,而我们可以使用开箱即用的 nodemon?我只是用 npm 安装 nodemon 并直接使用它而无需指定任何脚本,它可以完美运行。
  • @M.Dhaouadi npm startnpm run start 的别名
【解决方案3】:

我有一个名为“server.ts”的 TypeScript 文件,以下 npm 脚本配置 Nodemon 和 npm 以启动我的应用程序并监控 TypeScript 文件的任何更改:

"start": "nodemon -e ts  --exec \"npm run myapp\"",
"myapp": "tsc -p . && node server.js",

我已经在依赖项上安装了 Nodemon。当我运行npm start 时,它会要求Nodemon 使用-e 开关监控它的文件,然后它调用myapp npm 脚本,这是一个简单的组合转换打字稿文件,然后启动生成的server.js。当我更改 TypeScript 文件时,由于 -e 切换会发生相同的循环,并且将生成并执行新的 .js 文件。

【讨论】:

    【解决方案4】:

    我在我的 Node.js 项目中使用 Nodemon 版本 1.88.3。 要安装 Nodemon,请参阅https://www.npmjs.com/package/nodemon

    检查你的 package.json,看看“脚本”是否发生了这样的变化:

      "scripts": {
        "dev": "nodemon server.js"
      },
    

    server.js 是我的文件名,您可以为这个文件使用其他名称,例如app.js

    之后,在终端上运行:npm run dev

    【讨论】:

      【解决方案5】:

      使用-exec:

      "your-script-name": "nodemon [options] --exec 'npm start -s'"
      

      【讨论】:

      • 除了 exec 之外还有其他方法吗?
      • 如果您想从命令行执行此操作,只需 nodemon [options] --exec 'npm start -s'
      • @ArnoldRoa 安装它。
      • 我不知道npm start -s 中的-s 标志。
      • @liuliang 这是--loglevel silent 的快捷方式(只是一个例子)。
      【解决方案6】:

      包内json:

      "scripts": {
        "start": "node index",
        "dev": "nodemon index"
      },
      
      "devDependencies": {
        "nodemon": "^2.0.2"
      }
      

      在终端中进行开发:

      npm run dev
      

      以及定期启动服务器:

      npm start
      

      【讨论】:

      • 什么是“regiuler”?你的意思是“常规”吗?
      【解决方案7】:

      首先更改您的 package.json 文件,

      "scripts":
          { 
              "start": "node ./bin/www",
              "start-dev": "nodemon ./app.js"
          },
      

      之后,执行命令

      npm run start-dev
      

      【讨论】:

      • 但是当你离开app.js 时,你正在绕过./bin/www 所做的一切......
      • 每次都打开这个新标签
      【解决方案8】:

      在 package.json 文件中。像这样更改文件

      "scripts":{ 
         "start": "node ./bin/www", 
         "start-dev": "nodemon ./app.js"
       },
      

      然后执行npm run start-dev

      【讨论】:

        【解决方案9】:

        Nodemon 在每次状态变化时发出事件;启动、重启崩溃等。你可以像这样添加一个Nodemon配置文件(nodemon.json):

        {
           "events": {
               "start": "npm run *your_file*"
           }
        }
        

        Nodemon events — run tasks at server start, restart, crash, exit 了解更多信息。

        【讨论】:

          【解决方案10】:

          将此添加到项目的 package.json 文件中的脚本对象

          “开始”:“nodemon index.js”

          应该是这样的

          “脚本”:{ “开始”:“nodemon index.js” }

          【讨论】:

            【解决方案11】:

            我只是在终端中使用'npx'来设置nodemon并执行它

            npx nodemon
            

            【讨论】:

              【解决方案12】:

              你也可以全局安装nodemon以便频繁使用:

              npm i nodemon -gsudo npm i nodemon -g

              然后编辑你的 package.json:

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

              通常,“dev”指定开发用途(npm run dev)。

              【讨论】:

                【解决方案13】:

                这取决于您的 Nodemon 安装类型。如果您使用命令(npm install nodemon --globalnpm install nodemon -g)全局安装 Nodemon,则不必在 package.json 文件中为 Nodemon 指定任何脚本。只需执行命令nodemon index.js 即可运行您的项目。

                但是如果您通过命令npm install nodemon 在本地安装 Nodemon,那么您必须指定脚本。如果您将其命名为start,那么npm run startnpm start 将触发服务器运行。

                // Absolutely no need for global installation
                 "scripts": {
                    "start": "nodemon index.js"
                  }
                

                【讨论】:

                  【解决方案14】:

                  如果全局安装则

                  "scripts": {
                      "start": "nodemon FileName.js(server.js)",
                  },
                  

                  确保您已全局安装nodemon

                  npm install -g nodemon
                  

                  最后,如果您是 Windows 用户,请确保 the security restriction of the Windows PowerShell is enabled

                  【讨论】:

                    【解决方案15】:

                    { “名称”:“后端”, “版本”:“0.0.0”, “私人”:真的, “脚本”:{ “开始”:“nodemon ./bin/www” }, “依赖”:{ "bcrypt": "^5.0.1", "cookie-parser": "~1.4.4", “调试”:“~2.6.9”, “快递”:“~4.16.1”, "hbs": "^4.1.2", "http-errors": "~1.6.3", “摩根”:“~1.9.1”, “nodemon”:“^2.0.12” } }

                    使用“nodemon ./bin/www”脚本 > 开始

                    • 例如:

                    “脚本”:{ “开始”:“nodemon ./bin/www” },

                    【讨论】:

                      【解决方案16】:

                      如果您全局安装了nodemon,只需在您的项目中运行nodemon,就会自动从package.json 运行start 脚本。

                      例如:

                      "scripts": {
                        "start": "node src/server.js"
                      },
                      

                      来自the nodemon documentation

                      nodemon 还将在 package.json 中搜索 scripts.start 属性(从 nodemon 1.1.x 开始)。

                      【讨论】:

                        【解决方案17】:

                        我知道已经晚了 5 年,如果你想使用nodemon.json,你可以试试这个,

                        {
                          "verbose": true,
                          "ignore": ["*.test.js", "fixtures/*"],
                          "execMap": {
                            "js": "electron ." // 'js' is for the extension, and 'electron .' is command that I want to execute
                          }
                        }
                        

                        execMap 将像 package.json 中的 script 一样执行,然后您可以运行 nodemon js

                        【讨论】:

                          【解决方案18】:

                          为避免全局安装,请将 Nodemon 添加为依赖项,然后...

                          package.json

                          "scripts": {
                              "start": "node ./bin/www",
                              "start-dev": "./node_modules/nodemon/bin/nodemon.js ./bin/www"
                            },
                          

                          【讨论】:

                          • 如果你安装在 devDependencies 下,你仍然可以让它 "start-dev": "nodemon ./bin/www"
                          猜你喜欢
                          • 2018-07-12
                          • 2018-01-29
                          • 1970-01-01
                          • 2016-08-18
                          • 2018-12-28
                          • 1970-01-01
                          • 2016-06-02
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多