Articles of npm scripts

如何将命令行parameter passing给嵌套的脚本?

注意:这不是关于将参数发送到顶层脚本,而是发送到该脚本所调用的脚本 在我的package.json中,当我直接调用一个使用命令行参数的脚本时,它可以工作。 但是当我调用一个脚本调用另一个脚本时,它不会将命令行parameter passing给它。 我如何通过他们? { … "takes-args": "somemodule", "calls-takes-args": "npm run takes-args" } 当我运行下面的命令,参数来通过: npm run takes-args — -env dev 但是当我通过另一个脚本运行它时,它从来没有得到参数。 有什么办法让他们失望? 也许通过一个像美元符号的variables标记? //The top-level script gets the args, BUT takes-args does NOT npm run calls-takes-args — -env dev 有什么办法吗?

npm脚本使用进程replace命令失败

在我的标准OSXterminal上运行以下操作按预期工作: $ diff <(ls dir1) <(ls dir2) correct output here 但是,当我尝试运行它作为一个NPM脚本,它失败: $ npm run diff sh: -c: line 0: syntax error near unexpected token `(' sh: -c: line 0: `diff <(ls src) <(ls dist)' 当我将NPM脚本更改为"bash -c 'diff <(ls dir1) <(ls dir2)'"它首先输出所需的结果,然后抛出一个错误(退出状态1)。 编辑:这些怪异的<()符号是过程replace的方式。 刚刚了解了他们。

npm package.json操作系统特定的脚本

我想创build一个package.json构build脚本,从Windows,Linux,Mac运行时执行一些不同的命令集。 问题是我找不到一个方法把它放在package.json文件中,这个文件在每个系统上运行都没有问题。 这里是我想要的一个例子: "scripts" : { "build.windows" : "echo do windows specific stuff", "build.linux" : "echo do linux specific stuff", "build.mac" : "echo do mac specific stuff", "build" : "??????????????" <- what to put here to execute script designed for OS on which npm is running }

如何在节点6.10.1中使用npm安装所有依赖项

问题:如果我运行以下命令 npm install 只有在package.json文件的“dependencies”部分中提到的软件包才被安装。 那些在“devDependencies”没有被安装。 为了安装“devDependencies”我需要运行下面的命令: npm install –only=dev 我的问题是,有一种方法,我可以通过一个单一的命令安装(我知道我可以通过定义一个npm自定义脚本,但我不喜欢这种解决scheme)。 注意:我的节点版本是6.10.1这个问题在我升级到6.10.1之后开始发生

链接应用程序与数据库

我试图用我的数据库连接我的应用程序使用mysql库。 这是我的代码: //Require Libraries const mysql = require('mysql'); //Set up MySql connection const connection = mysql.createConnection({ host : "255.255.255.255", //that ain't actually the ip 😛 port : "3306", user : "root", password : "password :P", database : "db_name" }); connection.connect(); //Connect to the database 代码给出的错误是: events.js:182 throw er; // Unhandled 'error' event ^ Error: connect […]

NPM预安装脚本

我试图在安装任何软件包之前运行一些策略脚本。 例如: { "name": "pre-hook-check", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "preinstall": "echo preinstall", "postinstall": "echo postinstall" }, "author": "", "license": "ISC", "dependencies": { "abc": "^0.6.1", "preact": "^8.2.5" } } 上面的例子中的前后安装脚本似乎只有当我做npm install ,但我希望这每次我尝试安装任何东西时运行。 例如:假设我想编写一个脚本来检查包的版本,只要我的团队运行npm install <some package> 。 我想检查安装包的版本,并确认它的版本是在“1.0.0”以上,否则不要让它们安装。 我打算写一个预安装脚本 npm info lodash version […]

执行npm命令时发出

我们同时在机器上多次运行npm命令时遇到以下问题。 这个问题随机发生。 找不到任何根本原因。 详细信息附在下面的错误日志中 错误日志: 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'run', 1 verbose cli 'coverage' ] 2 info using npm@5.3.0 3 info using node@v6.4.0 4 verbose run-script [ 'precoverage', 'coverage', 'postcoverage' ] 5 info lifecycle gulp-karma@1.0.0~precoverage: gulp-karma@1.0.0 […]

将命令行parameter passing给npm'pre'脚本和多个命令的脚本

有没有办法将命令行parameter passing给npm'pre'脚本或运行多个命令的脚本? 假设一个简单的脚本mySexyScript.js只是注销process.argv: console.log(process.argv); 这工作 用npm脚本: … "scripts": { …. "sexyscript": "node mySexyScript.js" …. } … 运行: npm run sexyscript — –foo=bar 按照预期将参数logging到控制台。 'pre'脚本 – 这是行不通的 用npm脚本: … "scripts": { …. "presexyscript": "node mySexyScript.js" "sexyscript": "node mySuperSexyScript.js" …. } … 运行: npm run sexyscript — –foo=bar 参数不会传递给mySexyScript,并且不会logging 多个命令 – 这也是行不通的 用npm脚本: … "scripts": { …. […]

如何在每个“npm install <package>”运行后运行安装后脚本

我正在维护以下目录结构: /home/user/Desktop/ |– app/ | |– package.json | `– server.js |– node/ | |– bin/ | | |– node | | `– npm | |– include/ | |– lib/ | `– share/ | `– npm.sh 我希望我的所有本地安装的节点模块驻留在目录node 。 也就是说,如果我在目录app运行npm install ,最初它会将模块安装在当前目录( app )中,然后将node_modules文件夹移动到名为node的外部目录。 为此,我写了一个脚本npm.sh ,并将mv (move)命令放在package.json的postinstall脚本中。 这些是npm.sh和package.json文件。 内容npm.sh : #/bin/bash export PATH=/home/user/Desktop/node/bin:$PATH export NODE_PATH=/home/user/Desktop/node/node_modules export NODE_MODULE_ROOT=/home/user/Desktop/node […]