是否使用yarn global add PACKAGE
和npm install -g PACKAGE
安装全局软件包是否重要?
是否根本没有任何区别,例如文件的安装位置? 如果是,那是什么?
答案 0 :(得分:0)
是的,您是对的,这是不同的。对于npm
,它类似于以下内容
/Users/tarunlalwani/.nvm/versions/node/v9.2.0/lib
(如果您使用的是nvm
您可以使用
获取此路径$ npm config get prefix
/Users/tarunlalwani/.nvm/versions/node/v9.2.0
Where does npm install packages?
纱线使用其他路径时
How to display yarn globally installed packages?
也请参见此线程
答案 1 :(得分:0)
您可能想阅读this for understanding differences between npm, yarn and pnpm
在npm中,目录层次结构如下
node_modules
- package-A
- package-B
- package-C
-- some-file-name-in-package-c.js
在yarn install
某个地方运行时,最好在工作区根目录中,并且一切正常,现在您应该具有类似的文件层次结构:
/package.json
/yarn.lock
/node_modules
/node_modules/cross-env
/node_modules/workspace-a -> /workspace-a
/workspace-a/package.json
/workspace-b/package.json
npm 创建一个package.json
,在安装依赖项时会将其添加到文件中。
在纱线中,它创建一个yarn.lock
文件,该文件与npm-shrinkwrap.json
类似,但默认情况下已创建。除了常规信息外,yarn.lock文件还包含要安装内容的校验和,以确保使用相同版本的库。
与npm不同,yarn不需要互联网连接即可安装已经本地缓存的依赖项,从而提供脱机模式。自2012年以来,npm一直未成功请求该功能。
纱线和npm之间的差异可以从纱线official网站借用,因为它指出,
Note: Installation via npm is generally not recommended. npm is non-deterministic, packages are not signed, and npm does not perform any integrity checks other than a basic SHA1 hash, which is a security risk when installing system-wide apps.
For these reasons, it is highly recommended that you install Yarn through the installation method best suited to your operating system.
答案 2 :(得分:0)
这是关于Yarn global
的文档的文档yarn global是用于许多命令的前缀,例如add,bin, 列出并删除。它们的行为与正常版本相同 除了它们使用全局目录存储软件包外。全球 命令使可执行文件可以在您的操作系统上使用
在全局模式下(即,在命令后附加-g或--global) 安装当前的包上下文(即当前工作的 目录)作为全局包。
我认为它们之间没有区别。将软件包安装为对开发人员工具有用的全局软件包,它不是任何单个项目的一部分,而是用于本地命令
答案 3 :(得分:0)
是的,这很重要。 纱线提供稳定性,提供已安装软件包的锁定版本。模块的安装速度较高。这对于具有更多依赖性的大型项目非常重要。对于npm,当我们需要在不同的机器上部署项目时,已安装软件包的版本可能会有所不同。从纱线的主要好处来看,我们可能会强调以下几点:
NPM
$(npm prefix -g)/lib/node_modules
yarn global bin
纱线
yarn global dir