NodeJS 如何将自定义脚本添加到运行javascript文件的package.json文件中?

svdrlsy4  于 2023-05-06  发布在  Node.js
关注(0)|答案(7)|浏览(165)

我希望能够在将运行node script1.js的项目目录中执行命令script1
script1.js是同一目录中的文件。该命令需要特定于项目目录,这意味着如果我将项目文件夹发送给其他人,他们将能够运行相同的命令。
到目前为止,我尝试添加:

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

我的package.json文件,但当我尝试运行script1时,我得到以下输出:

zsh: command not found: script1

有谁知道将上面提到的脚本添加到项目文件夹所需的步骤吗?

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

请让我知道如果你需要任何澄清。

cmssoen2

cmssoen21#

自定义脚本

npm run-script <custom_script_name>

  • 或 *

npm run <custom_script_name>
在您的示例中,您可能希望运行npm run-script script1npm run script1
参见https://docs.npmjs.com/cli/run-script

生命周期脚本

Node还允许您为某些生命周期事件运行自定义脚本,例如在运行npm install之后。可以找到here
例如:

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

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

wgx48brx

wgx48brx2#

我已经创建了以下内容,它正在我的系统上工作。请试试这个:
package.json:

{
  "name": "test app",
  "version": "1.0.0",
  "scripts": {
    "start": "node script1.js"   
  }
}

script1.js:

console.log('testing')

在命令行中运行以下命令:

npm start

其他用例

我的package.json文件通常包含以下脚本,这些脚本使我能够监视我的文件的类型脚本,sass编译和运行服务器。

"scripts": {
    "start": "concurrently \"sass --watch ./style/sass:./style/css\" \"npm run tsc:w\" \"npm run lite\" ",    
    "tsc": "tsc",
    "tsc:w": "tsc -w", 
    "lite": "lite-server",
    "typings": "typings",
    "postinstall": "typings install" 
  }
7uzetpgm

7uzetpgm3#

步骤如下:
1.在package.json中添加:

"bin":{
    "script1": "bin/script1.js" 
}

1.在项目目录中创建一个bin文件夹,并添加文件runScript1.js,代码如下:

#! /usr/bin/env node
var shell = require("shelljs");
shell.exec("node step1script.js");

1.在终端中运行npm install shelljs
1.在终端中运行npm link
1.现在可以从终端运行script1,它将运行node script1.js
参考:http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm

gajydyqb

gajydyqb4#

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

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

现在转到您的终端并运行npm run singleCommandToRunTwoCommand

exdqitrt

exdqitrt5#

假设我的“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_advertises”,我将简单地转到终端并输入

npm run export_advertisements
n7taea2i

n7taea2i6#

示例:

"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应用程序,然后从目录中删除所有旧文件,最后复制生成的构建文件。

bpsygsoo

bpsygsoo7#

在我的情况下,我太笨了,我正在运行下面的命令

node run build

而不是在命令之下

npm run build

请重新检查你的命令一次之前清理和重新运行安装.
另外,请不要忘记npx,它可以让您在不安装任何模块的情况下使用它。

相关问题