如何将自定义脚本添加到运行 javascript 文件的 package.json 文件?
How do I add a custom script to my package.json file that runs a javascript file?
我希望能够在将 运行 node script1.js
.
的项目目录中执行命令 script1
script1.js
是同一目录下的一个文件。该命令需要特定于项目目录,这意味着如果我将项目文件夹发送给其他人,他们将能够 运行 相同的命令。
到目前为止我已经尝试添加:
"scripts": {
"script1": "node script1.js"
}
到我的 package.json 文件但是当我尝试 运行ning script1
我得到以下输出:
zsh: command not found: script1
有谁知道将上述脚本添加到项目文件夹的必要步骤吗?
*注意:命令不能添加到bash配置文件(不能是机器特定命令)
如果您需要任何说明,请告诉我。
我创建了以下内容,它正在我的系统上运行。请试试这个:
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"
}
步骤如下:
在package.json中添加:
"bin":{
"script1": "bin/script1.js"
}
在工程目录下新建一个bin
文件夹,添加文件runScript1.js
,代码为:
#! /usr/bin/env node
var shell = require("shelljs");
shell.exec("node step1script.js");
运行 npm install shelljs
在终端
运行 npm link
在终端
您现在可以从终端 运行 script1
这将 运行 node script1.js
参考:http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
自定义脚本
npm run-script <custom_script_name>
或
npm run <custom_script_name>
在您的示例中,您需要 运行 npm run-script script1
或 npm run script1
.
见https://docs.npmjs.com/cli/run-script
生命周期脚本
Node 还允许您 运行 为某些生命周期事件自定义脚本,例如 npm install
之后 运行。这些可以找到 here。
例如:
"scripts": {
"postinstall": "electron-rebuild",
},
这会在 npm install
命令后 运行 electron-rebuild
。
示例:
"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 应用程序,然后从目录中删除所有旧文件,最后复制结果构建文件。
让我们在脚本中说您想要 运行 2 个命令和一个命令:
"scripts":{
"start":"any command",
"singleCommandToRunTwoCommand":"some command here && npm start"
}
现在转到您的终端 运行 npm run singleCommandToRunTwoCommand
。
假设我的“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_advertisements”,我只需转到终端并输入
npm run export_advertisements
不客气
你的脚本
"scripts": {
"start": "node script1.js",
"script2": "node script2.js"
}
命令
npm start
npm run script2
我希望能够在将 运行 node script1.js
.
script1
script1.js
是同一目录下的一个文件。该命令需要特定于项目目录,这意味着如果我将项目文件夹发送给其他人,他们将能够 运行 相同的命令。
到目前为止我已经尝试添加:
"scripts": {
"script1": "node script1.js"
}
到我的 package.json 文件但是当我尝试 运行ning script1
我得到以下输出:
zsh: command not found: script1
有谁知道将上述脚本添加到项目文件夹的必要步骤吗?
*注意:命令不能添加到bash配置文件(不能是机器特定命令)
如果您需要任何说明,请告诉我。
我创建了以下内容,它正在我的系统上运行。请试试这个:
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"
}
步骤如下:
在package.json中添加:
"bin":{ "script1": "bin/script1.js" }
在工程目录下新建一个
bin
文件夹,添加文件runScript1.js
,代码为:#! /usr/bin/env node var shell = require("shelljs"); shell.exec("node step1script.js");
运行
npm install shelljs
在终端运行
npm link
在终端您现在可以从终端 运行
script1
这将 运行node script1.js
参考:http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
自定义脚本
npm run-script <custom_script_name>
或
npm run <custom_script_name>
在您的示例中,您需要 运行 npm run-script script1
或 npm run script1
.
见https://docs.npmjs.com/cli/run-script
生命周期脚本
Node 还允许您 运行 为某些生命周期事件自定义脚本,例如 npm install
之后 运行。这些可以找到 here。
例如:
"scripts": {
"postinstall": "electron-rebuild",
},
这会在 npm install
命令后 运行 electron-rebuild
。
示例:
"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 应用程序,然后从目录中删除所有旧文件,最后复制结果构建文件。
让我们在脚本中说您想要 运行 2 个命令和一个命令:
"scripts":{
"start":"any command",
"singleCommandToRunTwoCommand":"some command here && npm start"
}
现在转到您的终端 运行 npm run singleCommandToRunTwoCommand
。
假设我的“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_advertisements”,我只需转到终端并输入
npm run export_advertisements
不客气
你的脚本
"scripts": {
"start": "node script1.js",
"script2": "node script2.js"
}
命令
npm start
npm run script2