我希望能够在将运行节点script1.js的项目目录中执行命令script1。

Script1.js是同一目录下的一个文件。该命令需要特定于项目目录,这意味着如果我将项目文件夹发送给其他人,他们将能够运行相同的命令。

到目前为止,我尝试添加:

"scripts": {
    "script1": "node script1.js"
}

我的包裹。json文件,但当我尝试运行script1,我得到以下输出:

zsh: command not found: script1

有人知道将上面提到的脚本添加到项目文件夹的必要步骤吗?

*注意:该命令不能添加到bash配置文件(不能是特定于机器的命令)

如果你需要澄清,请告诉我。


当前回答

假设在脚本中,你想用一个命令运行两个命令:

"scripts":{
  "start":"any command",
  "singleCommandToRunTwoCommand":"some command here && npm start"
}

现在在你的终端上运行npm run singleCommandToRunTwoCommand。

其他回答

例子:

  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "build_c": "ng build --prod && del \"../../server/front-end/*.*\" /s /q & xcopy /s dist \"../../server/front-end\"",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

正如你所看到的,“build_c”脚本正在构建angular应用程序,然后从一个目录中删除所有旧文件,最后复制结果构建文件。

自定义脚本

NPM run-script <custom_script_name>

or

NPM运行<custom_script_name>

在你的例子中,你想要运行npm run-script script1或npm run script1。

参见https://docs.npmjs.com/cli/run-script

生命周期脚本

Node还允许你为特定的生命周期事件运行自定义脚本,比如在npm install运行之后。这些都可以在这里找到。

例如:

"scripts": {
    "postinstall": "electron-rebuild",
},

这将在npm install命令之后运行electron-rebuild。

假设在脚本中,你想用一个命令运行两个命令:

"scripts":{
  "start":"any command",
  "singleCommandToRunTwoCommand":"some command here && npm start"
}

现在在你的终端上运行npm run singleCommandToRunTwoCommand。

步骤如下:

在包中。json添加: "本":{ :“script1 bin / script1.js” } 在项目目录中创建一个bin文件夹,并添加文件runScript1.js,代码如下: # !/usr/bin/env节点 Var shell = require("shelljs"); 壳。step1script.js exec(“节点”); 在终端运行npm install shelljs 在终端运行npm link 现在你可以从终端运行script1,它将运行节点script1.js

参考:http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm

假设我在package.json中有这一行脚本

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "export_advertisements": "node export.js advertisements",
    "export_homedata": "node export.js homedata",
    "export_customdata": "node export.js customdata",
    "export_rooms": "node export.js rooms"
  },

现在要运行脚本“export_ads”,我只需转到终端并键入

npm run export_advertisements