我正在尝试使用 npm
作为构建工具,灵感来自 Keith Cirkel 的文章 How to Use npm
as a Build Tool 。这确实有效,但是...
$ npm run build
> browserify $npm_package_config_src -d -p [minifyify --map myproj-$npm_package_version.map.json --output dist/myproj-$npm_package_version.map.json] > dist/myproj-$npm_package_version.min.js
我来自 Make world,我真的很希望看到实际命令进一步发展,这意味着 $npm_package_config_src
和 $npm_package_version
扩展,如下所示:
$ npm run build
> browserify src/myfile.js -d -p [minifyify --map myproj-0.4.2.map.json --output dist/myproj-0.4.2.map.json] > dist/myproj-0.4.2.min.js
有办法实现这一点吗?
推理:当人们看到实际命令时,它使调试构建变得更加清晰。现在我觉得我被蒙在鼓里(尽管正确的事情可能会发生)。另外,由于 $npm_package_config_blahblah
实在是太“拗口”了(正如 Keith 善意地说的那样),它本身就变成了一个冗长的问题。
最佳答案
问题是 npm 在涉及 npm 脚本时并没有真正的智能;它只是获取原始字符串并将它们传递到操作系统 shell(大多数操作系统为 bash,Windows 为 cmd)。 Npm 不知道什么是变量、通配符或任何 shell 功能。
因此,您只能依赖 bash 功能和/或 Windows cmd 功能。幸运的是,两者都有这个选项:
在 bash 上,您可以set -x
或set -o verbose
,如下所示:
{
"scripts": {
" foo": "set -x; echo $bar"
}
}
在 Windows 中,您可以选择 @echo on
:
{
"scripts": {
" foo": "@echo on; echo $bar"
}
}
但是,我不确定如何将它们组合起来以兼容这两种环境。
关于node.js - 我可以显示 npm 运行的扩展命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734981/