cross-env命令在nodejs中如何工作?

yel*_*tre 8 node.js npm node-modules yarnpkg cross-env

我的 package.json 中有以下行

"scripts": {
  "start": "cross-env NODE_ENV=development node index.js"
}
Run Code Online (Sandbox Code Playgroud)

我可以看到“ yarn start ”命令运行良好,但是当我直接在终端中运行“ cross-env NODE_ENV=development node index.js ”命令时,出现以下错误:

zsh: command not found: cross-env
Run Code Online (Sandbox Code Playgroud)

如果 cross-env 没有在终端中注册,“ yarn start ”命令如何工作?

Dem*_*xel 4

https://docs.npmjs.com/cli/v7/configuring-npm/folders#executables

在本地模式下,可执行文件会链接到 ./node_modules/.bin 中,以便通过 npm 运行的脚本可以使用它们。(例如,当您运行 npm test 时,测试运行程序将位于路径中。)

这只是一个让事情变得更容易的功能。这也意味着,如果您正在与多人合作的项目,您只需要npm install --save一个模块 - 您不必担心项目中的每个人都在全局范围内手动安装它。如果您想在命令行上自己运行它,您可以:

  • 全局安装模块
  • 手动在命令行输入./node_modules/.bin/cross-env
  • 安装 npx 并使用npx cross-env