npm nodejs中的cross-env命令是如何工作的?

ttygqcqt  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(167)

我在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命令是如何工作的?

fjnneemd

fjnneemd1#

https://docs.npmjs.com/cli/v7/configuring-npm/folders#executables
当处于本地模式时,可执行文件被链接到./node_modules/.bin中,以便它们可以用于通过npm运行的脚本。(例如,当您运行npm test时,测试运行器将位于路径中。
这只是一个功能,使事情更容易。这也意味着,如果您与多个人一起工作一个项目,您只需npm install --save一个模块-您不必担心项目中的每个人都手动全局安装它。如果你想自己在命令行上运行它,你可以:

  • 全局安装模块
  • 在命令行中手动键入./node_modules/.bin/cross-env
bvhaajcl

bvhaajcl2#

因此,我看到有人告诉您,yarn从本地项目的node_modules目录中拉取cross-env
除了全局安装cross-envinstall --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的缓存文件夹中。

相关问题