npm - 如果将包放在本地,如何避免将包添加到 node_modules
问题描述
我有应用程序和模块的存储库。模块包含在应用程序中,package.json
如下所示:
"application-module": "file:../modules/application-module"
在yarn install
该依赖项添加到node_modules
.
我想制作基于模块的应用程序。app
文件夹重现根模块。其他模块,如admin-panel-module
,account-module
应该在modules
文件夹中。因此,应用程序可能有node_modules
内部,但也modules
有模块的文件夹。这些模块git subtree
将从另一个仓库添加。所以,这样我就可以独立开发了
有什么方法可以避免添加和使用本地目录?
解决方案
多个 node_modules 和 package.json
在任何 node/npm 项目中,您可以package.json
在目录树中拥有多个,例如:
app/
package.json
node_modules
src...
account_module/
package.json
node_modules
src...
admin_module/
package.json
node_modules
src..
当您在任何子模块上调用yarn
(或npm install
ofc)时,其本地列出的依赖项package.json
将安装在本地 node_modules 文件夹中。
所以基本上你可以解决你的问题,确保每个孩子都有自己package.json
的依赖关系。
不过,您可以将公共依赖项放在根app
文件夹中。例如,如果您的所有项目都使用lodash
,则可以将lodash
依赖项放在添加的package_json
. yarn
在app
文件夹中执行后,该lodash
包将安装在应用程序的node_modules
.
之后,如果您:
require('lodash');
在任何一个孩子中,如果他们没有lodash
在自己的.node_modules
lodash
node_modules
如果您没有 root node_modules
,您仍然可以package.json
为任何子模块声明一个本地,并且它们将拥有自己的node_modules
.
因此,也许您可能想要完全避免公共依赖项,或者您可能希望将公共依赖项存储在app
文件夹中。Npm 你已经涵盖了这两种方式。
但是,如果您不想处理常见的依赖项,但又担心必须在本地机器中存储大量重复的包,您可能需要检查 pnpm,它是 npm 的包装器,可以节省大量空间在本地开发机器中。
推荐阅读
- android - Android:RecyclerView 中的 TextView 对齐
- linux - 在搜索和复制文件时添加检查文件是否存在功能
- python - 修剪python中的输出
- matplotlib - Julia 的 PyPlot 子图标题和副标题重叠
- sql - 在没有 PL/pgSQL 的情况下迭代 PostgreSQL 中的选择结果
- freeradius - 如果语句的评估不一致
- fluentd - fluentD,如何使用变量
- javascript - 涉及泛型对象的泛型属性的赋值无法在泛型函数中正确进行类型检查
- arrays - Swift Array/Dictionary 未按预期顺序打印
- python - 为数组定义 Keras 模型