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

问题描述 投票:0回答:2

我的 package.json 中有以下行

"scripts": {
  "start": "cross-env NODE_ENV=development node index.js"
}

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

zsh: command not found: cross-env

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

node.js npm node-modules yarnpkg cross-env
2个回答
3
投票

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

0
投票

所以,我看到人们已经通知您

yarn
从本地项目的
cross-env
目录中提取了
node_modules

除了全局安装

cross-env
npm install --global cross-env
)以便您可以在终端中运行
cross-env NODE_ENV=development node index.js
之外,您还可以使用
npx
来运行它:

npx cross-env NODE_ENV=development node index.js

npx
如何运作?
当您使用
npx
时,它首先检查所需的包是否已经存在 本地安装在当前项目的
node_modules
文件夹中。 如果找不到包,
npx
从npm下载包 注册表并将其临时存储在特定于
npx
的缓存文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.