我在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命令是如何工作的?
2条答案
按热度按时间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
bvhaajcl2#
因此,我看到有人告诉您,
yarn
从本地项目的node_modules
目录中拉取cross-env
。除了全局安装
cross-env
(install --global cross-env
)以便在终端中运行cross-env NODE_ENV=development node index.js
之外,您还可以使用npx
来运行它:字符串
npx
如何工作?当您使用
npx
时,它首先会检查所需的软件包是否已经安装在当前项目的node_modules
文件夹中。如果没有找到包,npx
会从npm注册表下载包,并将其临时存储在特定于npx
的缓存文件夹中。