我可以显示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 -xset -o verbose如此:

 { "scripts": { " foo": "set -x; echo $bar" } } 

在Windows中,你可以select@echo on

 { "scripts": { " foo": "@echo on; echo $bar" } } 

但是我不知道如何将这些组合起来以便与这两种环境兼容。