NPM – 脚本 – 它们是如何工作的?
我无法理解脚本如何在package.json
中运行,并希望对我们的新手有所了解。
这是否是由加载了各种dependencies
节点运行的bash
脚本?
如果是的话,那么它是如何处理JavaScript代码?
这是他们是bash脚本的情况
是
由节点运行
不,他们是由sh
运行的。
加载了各种依赖关系?
不,没有js文件被加载, npm
为你做的唯一的事情就是准备好环境 。 除此之外,它将./node_modules/.bin
添加到PATH
以便您可以立即调用已安装的模块。
当你运行npm run-script whatever
,这就是npm
所做的:
- 从
package.json
读取相应的命令行 - 准备环境
- 调用
sh
(或comspec
上的comspec
)并给它命令和env。 这里没有什么大魔法。
这可能不是100%准确的,所以我恳求其他更有资格的专家来参加。
NPM是一个程序,作为Node.JS环境的一部分安装。 这是两个主要用途(如这里所描述的)用于searchnode.js包和安装node.js包。
但是,NPM也能够理解“简单”(相对术语)脚本。
当你在你的package.json中写一个脚本,并发出NPM命令,说“npm start”,NPM将读取并解释脚本。 然后,NPM会search您的node_modules结构中的随附二进制文件,并使用必要的启动参数执行该二进制文件。
一个例子是
"test": "mocha --reporter spec test"
当你发出“npm test”时,NPM将在你的node_modules结构中寻找mocha二进制。 NPM发现摩卡发起呼叫,传递记者命令arg(–reporter spec)以及要被读取和执行的文件的名字。