标签: npm-scripts

如何将命令行参数传递给嵌套脚本?

注:这是不是发送参数传递给顶层的脚本,但被调用的脚本脚本

在我的package.json中,当我调用一个直接接受命令行args的脚本时,它可以工作.但是当我调用一个调用其他脚本的脚本时,它并没有将命令行args传递给它.我如何通过它们?

{
    ...
    "takes-args": "somemodule",
    "calls-takes-args": "npm run takes-args"
}
Run Code Online (Sandbox Code Playgroud)

当我运行以下命令时,args会通过:

npm run takes-args -- -env dev
Run Code Online (Sandbox Code Playgroud)

但是当我通过另一个脚本运行它时,它永远不会得到args.有没有办法让他们失望?也许通过像美元符号这样的可变标记?

//The top-level script gets the args, BUT takes-args does NOT
npm run calls-takes-args -- -env dev
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

javascript node.js npm node-modules npm-scripts

2
推荐指数
1
解决办法
1367
查看次数

npm 脚本因使用进程替换的命令而失败

在我的标准 OSX 终端上运行以下内容按预期工作:

$ diff <(ls dir1) <(ls dir2)
correct output here
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将它作为 NPM 脚本运行时,它失败了:

$ npm run diff
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `diff <(ls src) <(ls dist)'
Run Code Online (Sandbox Code Playgroud)

当我将 NPM 脚本更改为"bash -c 'diff <(ls dir1) <(ls dir2)'"它时,首先输出所需的结果,然后仍然抛出错误(退出状态 1)。

编辑:顺便说一下,那些奇怪的<()符号是过程替换。刚刚了解他们。

bash node.js npm-scripts

2
推荐指数
2
解决办法
482
查看次数

Nodemon用于开发环境

我想知道如何使用nodemon,并将其推送到git repo,并让项目上的其他开发人员能够使用nodemon而无需运行该命令npm install -g nodemon.理想情况下,我希望项目中的所有开发人员都能够运行,npm start并且无论是否全局安装,都会调用nodemon.我已经运行了npm install --save-dev nodemon,我很好奇是否有办法在package.json文件的scripts部分的start命令中从node_modules中运行nodemon.

node.js npm nodemon npm-start npm-scripts

2
推荐指数
1
解决办法
593
查看次数

如何使用 npm run 脚本运行“imagemin”插件?

使用 npm 下载 imagemin 插件后,如何使用它?有没有办法在需要时通过“npm run”运行插件?

npm imagemin npm-run npm-scripts

2
推荐指数
1
解决办法
1543
查看次数

`-s --` 标志对 npm 有什么作用?

我刚刚看了Kent C. Dodds的视频,他解释了他的.bash_profile.

他为yarnand使用以下别名npm

## npm aliases
alias ni="npm install";
alias nrs="npm run start -s --";
alias nrb="npm run build -s --";
alias nrd="npm run dev -s --";
alias nrt="npm run test -s --";
alias nrtw="npm run test:watch -s --";
alias nrv="npm run validate -s --";
alias rmn="rm -rf node_modules";
alias flush-npm="rm -rf node_modules && npm i && say NPM is done";
alias nicache="npm install --prefer-offline";
alias nioff="npm install --offline";

## yarn …
Run Code Online (Sandbox Code Playgroud)

bash flags npm npm-scripts yarnpkg

2
推荐指数
1
解决办法
1225
查看次数

如何将车把文件复制到 dist 文件夹

我使用的是 Typescript,它从src/lib/文件夹进行编译,而 Babel,它从lib/到进行编译dist/

我遇到的问题是,当我编译应用程序时,.handlebars其中的文件src/email_templates/没有被复制到。dist/因此,当我运行该应用程序时,它会失败并出现错误,因为它dist/email_templates/不存在。

我正在使用nodemailer-handlebars包并尝试将email_templates/文件夹移动到项目根目录并设置viewPath为该文件夹,但是这也会失败,因为应用程序位于var/www/api.my-domain.com/. 似乎api.my-domain.com文件夹名称中有句点会导致 viewPath 失败并出现错误:

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at validateString (internal/validators.js:125:11)
    at Object.resolve (path.js:1080:7)
    at ExpressHandlebars._resolveLayoutPath (/var/www/api.my-domain.com/node_modules/express-handlebars/lib/express-handlebars.js:342:17)
    at ExpressHandlebars.<anonymous> (/var/www/api.my-domain.com/node_modules/express-handlebars/lib/express-handlebars.js:223:35)
Run Code Online (Sandbox Code Playgroud)

这是我用于构建应用程序的 package.json 脚本:

"build": "tsc && babel ./lib --out-dir ./dist ",
Run Code Online (Sandbox Code Playgroud)

我如何更改它,以便删除当前内容,dist/email_templates然后将内容复制src/email_templatesdist/email_templates

node.js handlebars.js typescript babeljs npm-scripts

2
推荐指数
1
解决办法
3126
查看次数

“npm”如何运行“npm 测试代码覆盖率”?

当我执行时npm test --code-coverage,测试实际上运行但不生成覆盖率报告。任何想法?

npm-scripts

2
推荐指数
1
解决办法
7669
查看次数

从 package.json 中脚本部分的配置文件中读取

是否可以从"scripts"package.json 部分中的配置文件中读取?

问题背景:我们是几个开发人员,他们都在同一台终端服务器上工作。我们的 package.json 中有以下部分

...
"scripts": {
    "serve": "vue-cli-service serve --port 8080"
}
...
Run Code Online (Sandbox Code Playgroud)

由于我们位于同一服务器上,因此我们需要一种方法来指定不同的端口。一种可能性是使用命令行参数。但我希望有一种“更简单”的方式,我可以将端口存储在我添加的配置文件中.gitignore,这样每个开发人员都可以拥有自己的文件,我们只需键入而npm run serve无需考虑输入端口。

也许有更好的方法来做我想做的事。我愿意接受建议。

node.js npm npm-scripts

2
推荐指数
1
解决办法
5196
查看次数

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 的安全风险

要执行一些像installing typescriptvia这样的命令NPM,有时需要执行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

在 PowerShell 中,当您想要更改此策略时,它会发出警告:

更改执行策略可能会让您面临安全风险

我的问题是,有人知道这样做有什么安全风险吗?像 typescript 这样的著名软件包是否有可能导致安全问题?

powershell npm typescript npm-scripts

2
推荐指数
1
解决办法
7476
查看次数

NPM 以及即使一个命令失败也如何运行所有连续命令

我有一个 npm 脚本,其中命令之一(在本例中为test脚本)可能会失败。

"test": "npm run init && npm run test && npm run end"
Run Code Online (Sandbox Code Playgroud)

如果test脚本失败,则end永远不会执行脚本。有没有办法即使失败也
强制执行脚本?谢谢!endtest

node.js npm npm-scripts

2
推荐指数
1
解决办法
2460
查看次数