2016-03-01 44 views
1

当我输入npm run <command>时会发生什么? 是对<命令>传递给SH壳,如:npm如何运行?

sh -c <command> 

与添加到外壳额外的局部变量,即到node_modules/.bin的路径?

我以为npm只能通过使用节点在JavaScript中工作,但似乎还有很多事情要做。如何处理&&&?是globstar安全使用?

回答

4

npm run-script <command>使用sh -c在窗口上运行命令和cmd /d /s /c。 (source)它由child_process.spawn运行。

npm env列出npm在运行命令时使用的环境。 documentation列出了它添加到环境中的一些东西。这包括package.json,您提到的PATH以及更多内容。

&&&由壳处理,但spawn正在等待进程结束,即使它被放在后台由&&&正在按照您习惯于sh的方式工作。

globstar将按照您的预期工作,除非您在Windows上使用通配符

+0

关于'node_modules/.bin'的旁注:在unix下,该文件夹包含对模块.js脚本的符号链接。在Windows下,它们包含用节点调用.js脚本的.cmd文件。 – chris