I want to be able to execute the command script1 in a project directory that will run node script1.js.
script1.js is a file in the same directory. 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:
zsh: command not found: script1Does 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)
Please let me know if you need any clarification.
47 Answers
Custom Scripts
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.
See
Lifecycle Scripts
Node also allows you to run custom scripts for certain lifecycle events, like after npm install is run. These can be found here.
For example:
"scripts": { "postinstall": "electron-rebuild",
},This would run electron-rebuild after a npm install command.
I have created the following, and it's working on my system. Please try this:
package.json:
{ "name": "test app", "version": "1.0.0", "scripts": { "start": "node script1.js" }
}script1.js:
console.log('testing')From your command line run the following command:
npm startAdditional 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.
"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" } 3 Steps are below:
In package.json add:
"bin":{ "script1": "bin/script1.js" }Create a
binfolder in the project directory and add filerunScript1.jswith the code:#! /usr/bin/env node var shell = require("shelljs"); shell.exec("node step1script.js");Run
npm install shelljsin terminalRun
npm linkin terminalFrom terminal you can now run
script1which will runnode script1.js
Reference:
2Lets say in scripts you want to run 2 commands with a single command:
"scripts":{ "start":"any command", "singleCommandToRunTwoCommand":"some command here && npm start"
}Now go to your terminal and run there npm run singleCommandToRunTwoCommand.
Your script
"scripts": { "start": "node script1.js", "script2": "node script2.js"
}Commands
npm start
npm run script2 Suppose I have this line of scripts in my "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
npm run export_advertisementsYou 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.
1