NPM - 脚本 - 它们如何工作?

时间:2016-12-20 14:06:52

标签: javascript node.js bash environment-variables package.json

我无法理解脚本在package.json&我很欣赏对新手的一些见解。

它们是由加载了各种bash的节点运行的dependencies个脚本吗?

如果是,那么它如何处理javascript代码?

2 个答案:

答案 0 :(得分:3)

  

它们是bash脚本的情况

  

由节点

运行

不,它们由sh运行。

  

加载了各种依赖项?

不,没有加载任何js文件,npm唯一能为你做的就是prepare the environment。除此之外,它还将./node_modules/.bin添加到PATH,以便您可以立即调用已安装的模块。

当您运行npm run-script whatever时,这就是npm所做的事情:

  • package.json
  • 读取相应的命令行
  • 准备环境
  • 在win上调用sh(或comspec)并给它命令和env。这里没什么大不了的。

答案 1 :(得分:0)

这可能不是100%准确,所以我恳请其他更有资格的专家加入。

NPM是一个程序,作为Node.JS环境的一部分安装。它的两个主要用途(如描述here)用于搜索node.js包和安装node.js包。

然而,NPM还能够理解“简单”(相对术语)脚本。

当您在package.json中编写脚本并发出NPM命令时,请说“npm start”,NPM将读取并解释该脚本。然后,NPM在您的node_modules结构中搜索附带的二进制文件,并使用必要的启动参数执行该二进制文件。

一个例子是

"test": "mocha --reporter spec test"

当您发出“npm test”时,NPM将在您的node_modules结构中查找mocha二进制文件。 NPM发现mocha启动调用,传递报告命令arg(--reporter spec)以及要为测试读取和执行的文件名。