我最近开始使用pnpm作为我的节点模块的包管理器。此下载允许只将一个版本的程序包保存在磁盘上一次。这样可以通过仅下载上述下载尚未在全局范围内具有的软件包来节省我的硬盘空间。我想知道是否有任何其他可行的选项可以帮助不必为每个新项目运行'npm install'。提前致谢。
您可以通过Facebook尝试Yarn:https://yarnpkg.com/en/
从他们的网站:
Yarn缓存它下载的每个包,因此永远不需要再次下载它。它还可以并行化操作以最大限度地利用资源,因此安装时间比以往更快。
但是,您仍然必须为每个包运行yarn install
。我不认为在不同的安装之间“共享”包是非常理想的。如果您必须对包文件进行一次性更改,该怎么办?这将影响你的所有项目。
pnpm中有一个新的beta命令,允许同时在许多项目中进行安装。它被称为pnpm recursive install
。
运行pnpm help recursive
查看文档。从[email protected]
开始,它打印:
pnpm recursive [concurrency] install
实验!同时使用
package.json
(不包括node_modules)在所有子目录中运行安装。选项:与pnpm install
相同
pnpm recursive [concurrency] update
实验!使用
package.json
(不包括node_modules)在所有子目录中同时运行更新。 选项:与pnpm update
相同
据我所知,pnpm是目前唯一具有此功能的Node.js包管理器。
或者,您可以使用一些monorepo管理工具,如lerna。它将为您运行每个项目中的包管理器。它会比pnpm recursive
慢很多。
您到底想要避免/使用包管理器到底是什么? Yarn非常容易使用,并基于package.json构建所有依赖关系。
每当你创建一个新项目时,必须运行npm install
,因为它构建了将用于node_modules的节点模块。无论你使用Yarn还是pnpm,你仍然必须做相当于yarn add
等。
为了管理许多依赖,纱线非常好,因为你可以yarn add [insert package here]
和yarn start
。