NPM - 脚本 - 它们如何工作?
NPM - Scripts - How Do They Work?
我无法理解脚本在 package.json
中是如何 运行 的,希望能为我们这些新手提供一些见解。
它们是 bash
脚本吗 运行 由节点加载了各种 dependencies
?
如果是,那么它如何处理javascript代码?
Is it the case that they are bash scripts
是
that are run by node
不,它们是 运行 by sh
。
having loaded the various dependencies?
不,没有加载任何 js 文件,npm
唯一为您做的就是 prepare the environment。除其他外,它将 ./node_modules/.bin
添加到 PATH
以便您可以立即调用已安装的模块。
当你 运行 npm run-script whatever
时,这就是 npm
所做的:
- 从
package.json
读取相应的命令行
- 准备环境
- 调用
sh
(或 comspec
on win)并给它命令和环境。这里没有什么大魔法。
这可能不是 100% 准确,所以我恳请其他更有资格的专家插话。
NPM 是一个程序,作为 Node.JS 环境的一部分安装。它的两个主要用途(如 here 所述)是搜索 node.js 包和安装 node.js 包。
但是,NPM 也能够理解 "simple"(相对术语)脚本。
当您在 package.json 中编写脚本并发出 NPM 命令时,例如 "npm start",NPM 将读取并解释该脚本。 NPM 然后在您的 node_modules 结构中搜索附带的二进制文件,并使用必要的启动参数执行该二进制文件。
一个例子是
"test": "mocha --reporter spec test"
当您发出 "npm test" 时,NPM 将在您的 node_modules 结构中查找 mocha 二进制文件。 NPM 发现 mocha 发起调用,传递 reporter 命令 arg (--reporter spec) 和测试要读取和执行的文件的名称。
我无法理解脚本在 package.json
中是如何 运行 的,希望能为我们这些新手提供一些见解。
它们是 bash
脚本吗 运行 由节点加载了各种 dependencies
?
如果是,那么它如何处理javascript代码?
Is it the case that they are bash scripts
是
that are run by node
不,它们是 运行 by sh
。
having loaded the various dependencies?
不,没有加载任何 js 文件,npm
唯一为您做的就是 prepare the environment。除其他外,它将 ./node_modules/.bin
添加到 PATH
以便您可以立即调用已安装的模块。
当你 运行 npm run-script whatever
时,这就是 npm
所做的:
- 从
package.json
读取相应的命令行
- 准备环境
- 调用
sh
(或comspec
on win)并给它命令和环境。这里没有什么大魔法。
这可能不是 100% 准确,所以我恳请其他更有资格的专家插话。
NPM 是一个程序,作为 Node.JS 环境的一部分安装。它的两个主要用途(如 here 所述)是搜索 node.js 包和安装 node.js 包。
但是,NPM 也能够理解 "simple"(相对术语)脚本。
当您在 package.json 中编写脚本并发出 NPM 命令时,例如 "npm start",NPM 将读取并解释该脚本。 NPM 然后在您的 node_modules 结构中搜索附带的二进制文件,并使用必要的启动参数执行该二进制文件。
一个例子是
"test": "mocha --reporter spec test"
当您发出 "npm test" 时,NPM 将在您的 node_modules 结构中查找 mocha 二进制文件。 NPM 发现 mocha 发起调用,传递 reporter 命令 arg (--reporter spec) 和测试要读取和执行的文件的名称。