[英]How do I add a custom script to my package.json file that runs a javascript file?
I want to be able to execute the command script1
in a project directory that will run node script1.js
.我希望能够在将运行
node script1.js
的项目目录中执行命令script1
。
script1.js
is a file in the same directory. script1.js
是同一目录中的文件。 The command needs to be specific to the project directory, meaning that if I send someone else the project folder, they will be able to run the same command.该命令需要特定于项目目录,这意味着如果我将项目文件夹发送给其他人,他们将能够运行相同的命令。
So far I've tried adding:到目前为止,我已经尝试添加:
"scripts": {
"script1": "node script1.js"
}
to my package.json file but when I try running script1
I get the following output:到我的 package.json 文件,但是当我尝试运行
script1
时,我得到以下 output:
zsh: command not found: script1
Does anyone know the steps necessary to add the script mentioned above to the project folder?有谁知道将上述脚本添加到项目文件夹所需的步骤?
*Note: the command can not be added to the bash profile (cannot be a machine specific command) *注意:该命令不能添加到 bash 配置文件中(不能是特定于机器的命令)
Please let me know if you need any clarification.如果您需要任何澄清,请告诉我。
npm run-script <custom_script_name>
or或
npm run <custom_script_name>
In your example, you would want to run npm run-script script1
or npm run script1
.在您的示例中,您可能想要运行
npm run-script script1
或npm run script1
。
See https://docs.npmjs.com/cli/run-script请参阅https://docs.npmjs.com/cli/run-script
Node also allows you to run custom scripts for certain lifecycle events, like after npm install
is run. Node 还允许您为某些生命周期事件运行自定义脚本,例如在
npm install
之后。 These can be found here .这些可以在这里找到。
For example:例如:
"scripts": {
"postinstall": "electron-rebuild",
},
This would run electron-rebuild
after a npm install
command.这将在
npm install
命令之后运行electron-rebuild
。
I have created the following, and it's working on my system.我创建了以下内容,它在我的系统上运行。 Please try this:
请试试这个:
package.json:包.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:脚本1.js:
console.log('testing')
From your command line run the following command:从命令行运行以下命令:
npm start
Additional use case附加用例
My package.json file has generally the following scripts, which enable me to watch my files for typescript, sass compilations and running a server as well.我的 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"
}
Steps are below:步骤如下:
In package.json add:在 package.json 添加:
"bin":{ "script1": "bin/script1.js" }
Create a bin
folder in the project directory and add file runScript1.js
with the code:在项目目录下创建一个
bin
文件夹,并添加文件runScript1.js
,代码如下:
#! /usr/bin/env node var shell = require("shelljs"); shell.exec("node step1script.js");
Run npm install shelljs
in terminal在终端运行
npm install shelljs
Run npm link
in terminal在终端中运行
npm link
From terminal you can now run script1
which will run node script1.js
您现在可以从终端运行
script1
,它将运行node script1.js
Reference: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm参考: http : //blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
Lets say in scripts you want to run 2 commands with a single command:让我们在脚本中说你想用一个命令运行 2 个命令:
"scripts":{
"start":"any command",
"singleCommandToRunTwoCommand":"some command here && npm start"
}
Now go to your terminal and run there npm run singleCommandToRunTwoCommand
.现在转到您的终端并在那里
npm run singleCommandToRunTwoCommand
。
Suppose I have this line of scripts in my "package.json"假设我的“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"
},
Now to run the script "export_advertisements", I will simply go to the terminal and type现在要运行脚本“export_advertisements”,我只需转到终端并输入
npm run export_advertisements
You are most welcome 😊😊不客气😊😊
Example:示例:
"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"
},
As you can see, the script "build_c" is building the angular application, then deletes all old files from a directory, then finally copies the result build files.如您所见,脚本“build_c”正在构建 angular 应用程序,然后从目录中删除所有旧文件,最后复制结果构建文件。
Your script你的脚本
"scripts": {
"start": "node script1.js",
"script2": "node script2.js"
}
Commands命令
npm start
npm run script2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.