注:这是不是发送参数传递给顶层的脚本,但被调用的脚本是脚本
在我的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)
有什么办法吗?
在我的标准 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)。
编辑:顺便说一下,那些奇怪的<()符号是过程替换。刚刚了解他们。
我想知道如何使用nodemon,并将其推送到git repo,并让项目上的其他开发人员能够使用nodemon而无需运行该命令npm install -g nodemon.理想情况下,我希望项目中的所有开发人员都能够运行,npm start并且无论是否全局安装,都会调用nodemon.我已经运行了npm install --save-dev nodemon,我很好奇是否有办法在package.json文件的scripts部分的start命令中从node_modules中运行nodemon.
使用 npm 下载 imagemin 插件后,如何使用它?有没有办法在需要时通过“npm run”运行插件?
我刚刚看了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) 我使用的是 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_templates到dist/email_templates?
当我执行时npm test --code-coverage,测试实际上运行但不生成覆盖率报告。任何想法?
是否可以从"scripts"package.json 部分中的配置文件中读取?
问题背景:我们是几个开发人员,他们都在同一台终端服务器上工作。我们的 package.json 中有以下部分
...
"scripts": {
"serve": "vue-cli-service serve --port 8080"
}
...
Run Code Online (Sandbox Code Playgroud)
由于我们位于同一服务器上,因此我们需要一种方法来指定不同的端口。一种可能性是使用命令行参数。但我希望有一种“更简单”的方式,我可以将端口存储在我添加的配置文件中.gitignore,这样每个开发人员都可以拥有自己的文件,我们只需键入而npm run serve无需考虑输入端口。
也许有更好的方法来做我想做的事。我愿意接受建议。
要执行一些像installing typescriptvia这样的命令NPM,有时需要执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
在 PowerShell 中,当您想要更改此策略时,它会发出警告:
更改执行策略可能会让您面临安全风险
我的问题是,有人知道这样做有什么安全风险吗?像 typescript 这样的著名软件包是否有可能导致安全问题?
我有一个 npm 脚本,其中命令之一(在本例中为test脚本)可能会失败。
"test": "npm run init && npm run test && npm run end"
Run Code Online (Sandbox Code Playgroud)
如果test脚本失败,则end永远不会执行脚本。有没有办法即使失败也
强制执行脚本?谢谢!endtest
npm-scripts ×10
npm ×7
node.js ×6
bash ×2
typescript ×2
babeljs ×1
flags ×1
imagemin ×1
javascript ×1
node-modules ×1
nodemon ×1
npm-run ×1
npm-start ×1
powershell ×1
yarnpkg ×1