script1
を実行するプロジェクトディレクトリでnode script1.js
コマンドを実行できるようにしたいです。
script1.js
は同じディレクトリ内のファイルです。このコマンドはプロジェクトディレクトリに固有のものである必要があります。つまり、他の人にプロジェクトフォルダを送信しても、同じコマンドを実行できます。
これまでに追加してみました:
"scripts": {
"script1": "node script1.js"
}
私のpackage.jsonファイルに私はscript1
を実行しようとすると私は次のような出力を得ます:
zsh: command not found: script1
上記のスクリプトをプロジェクトフォルダに追加するために必要な手順を知っている人はいますか?
*注:コマンドをbashプロファイルに追加することはできません(マシン固有のコマンドにすることはできません)
説明が必要な場合はお知らせください。
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
が実行された後など、特定のライフサイクルイベントに対してカスタムスクリプトを実行することもできます。これらはここにあります。
例えば:
"scripts": {
"postinstall": "electron-rebuild",
},
これはelectron-rebuild
コマンドの後にnpm install
を実行します。
私は次のものを作成しました、そしてそれは私のシステムで働いています。これを試してください。
package.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:
console.log('testing')
コマンドラインから次のコマンドを実行します。
npm start
追加のユースケース
私のpackage.jsonファイルには一般的に以下のスクリプトがあり、TypeScript、sass compilation、そしてサーバーの実行のために私のファイルを見ることができます。
"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
例:
"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アプリケーションを構築し、次にディレクトリからすべての古いファイルを削除し、最後に結果のビルドファイルをコピーします。