每当我创建项目时,我都必须下载节点模块的所有依赖项.在不复制node_modules的情况下,无论如何都要共享多个项目中的中心node_modules?
像下面这样,我每次都要运行很多命令..
npm install gulp-usemin
npm install gulp-wrap
npm install gulp-connect
npm install gulp-watch
npm install gulp-minify-css
npm install gulp-uglify
npm install gulp-concat
npm install gulp-less
npm install gulp-rename
npm install gulp-minify-html
Run Code Online (Sandbox Code Playgroud)
tpi*_*pie 71
您绝对可以在项目中共享node_modules目录.
从节点的文档:
如果传递给require()的模块标识符不是本机模块,并且不以'/','../'或'./'开头,则节点从当前模块的父目录开始,并添加/ node_modules,并尝试从该位置加载模块.
如果在那里找不到它,那么它将移动到父目录,依此类推,直到到达文件系统的根目录.
例如,如果'/home/ry/projects/foo.js'中的文件名为require('bar.js'),那么节点将按以下顺序查找以下位置:
/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js
因此,只需将一个node_modules文件夹放在项目目录中,然后放入所需的任何模块.只需要他们像平常一样.当节点在项目文件夹中找不到node_modules目录时,它将自动检查父文件夹.所以让你的目录结构如下:
-myProjects
--node_modules
--myproject1
---sub-project
--myproject2
因此,即使您的子项目的依赖项也可以在您的主node_modules存储库上绘制.
这样做的一个缺点是你必须手动构建你的package.json文件(除非有人知道用grunt或其他东西自动化它的方法).当您安装软件包并将--save arg添加到npm install命令时,它会自动将其附加到依赖项部分或package.json,这很方便.
Eym*_*kum 14
我找到了一个技巧,只需看看Windows或Linux上的符号链接(符号链接),它就像快捷方式一样工作但功能更强大.
您只需要在任何地方Junction为您的node_modules文件夹创建一个.该结点只是原始node_modules文件夹的快捷方式.在项目文件夹中创建它,如果使用的话,将创建实际的node_modules npm install.
要实现这一点,您需要至少一个node_modules真实文件夹,然后在其他项目中与其建立连接.
在Windows上,您可以使用命令提示符,也可以使用应用程序.使用命令提示符可以提供更多控制,使用应用程序更容易我建议使用Link Shell扩展.
小智 11
主目录应该是这样的
node_modules
Project 1
Project 2
Project 3
Project 4
Run Code Online (Sandbox Code Playgroud)
只需打开文件 Project 1/.angular-cli.json
更改架构
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
Run Code Online (Sandbox Code Playgroud)
到
"$schema": "./../node_modules/@angular/cli/lib/config/schema.json"
Run Code Online (Sandbox Code Playgroud)
并且不要忘记node_modules在项目目录中创建空文件夹
尝试使用pnpm而不是npm.
pnpm使用硬链接和符号链接在磁盘上只保存一次模块版本.
安装时间:
npm install -g pnpm
Run Code Online (Sandbox Code Playgroud)
要更新现有安装(和子目录),请使用:
pnpm recursive install
Run Code Online (Sandbox Code Playgroud)
另请参阅 npm v7.0.0 对工作区的支持
RFC https://github.com/npm/rfcs/blob/latest/implemented/0026-workspaces.md
文档 https://docs.npmjs.com/cli/v7/using-npm/workspaces
| 归档时间: |
|
| 查看次数: |
37423 次 |
| 最近记录: |