我可以显示npm运行的扩展命令吗?
我试图使用npm
作为构build工具,由Keith Cirkel的文章如何使用npm
作为构build工具的动机。 这种工作,但…
$ 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世界,我真的很看重看到实际的命令进一步,这意味着$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
有没有办法做到这一点?
推理:当看到实际的命令时,它使debugging构build更清晰。 现在我觉得我在黑暗中(尽pipe可能会发生正确的事情)。 另外,由于$npm_package_config_blahblah
是一个“满口”(就像Keith所说的那样),它本身就是一个冗长的问题。
问题是npm脚本在npm脚本方面并没有任何智能。 它只需要原始string,并将它们传递给操作系统shell(大多数操作系统为bash,windows为cmd)。 Npm不知道什么variables,或者globbing,或者任何shell特性。
所以你只能依靠bash特性,或者windows cmd特性。 幸运的是,两者都有这个选项:
在bash上,你可以set -x
或set -o verbose
如此:
{ "scripts": { " foo": "set -x; echo $bar" } }
在Windows中,你可以select@echo on
:
{ "scripts": { " foo": "@echo on; echo $bar" } }
但是我不知道如何将这些组合起来以便与这两种环境兼容。