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)以及要被读取和执行的文件的名字。