在不同项目之间共享node_modules

2023-12-22

我正在开发各种 Angular 2 项目,我想在多个项目之间共享 node_modules 文件夹。我想创建一个这样的结构:

MainFolder
- Project1
- Project2
- package.json

所以我所有的项目都只有 1 个 package.json 。我的回答是:可以这样做吗? 如果可以的话我得吃午饭npm install with -g? 我不明白怎么办-g作品。 有人可以指导我如何进行吗? 很感谢

我忘了说我是用 angular-cli 构建项目的。


对于小型/学习/测试项目,我解决这个问题的方法是使用(我称之为)“git 项目”。基本上我通过 git 管理各种项目,然后“加载”我想要处理的项目。当然,如果您想同时访问多个项目,这不起作用。

我喜欢使用 git 客户端来实现此目的,因为它更容易可视化我现有的“项目”。

所以我的工作流程是这样的...

  1. 创建我的主/基本文件夹。这将包含 git 存储库、单个 node_modules 文件夹以及所有项目通用的其他内容。
  2. 我创建基本的 package.json 文件(使用npm init)。没有描述,什么也没有,只有基本的框架 package.json 文件。 (但是,如果您知道将在所有项目中使用某些包,则可以先 npm 安装它们,这样它们将作为您的“基本”模块添加到 package.json 中。)
  3. 现在,我将裸露的 package.json 检查到存储库中(以及您可能希望在所有项目中拥有的其他任何内容,但通常只是 package.json 文件)。这将是所有项目的基本起始分支。
  4. 签入后,我会在 git 存储库中创建一个分支。这将是“项目 1”——或者您想称呼它的任何名称。然后按照您想要的方式构建您的项目,安装模块,检查更改等等。
  5. 当我想开始一个新项目时,我只需检查第一个基本项目(它只是空的或几乎空的 package.json 文件)并从中创建另一个分支。这将是我的第二个项目。

等等...

所以最重要的是,每个新的“项目”都将是 git 存储库中的一个新分支,要创建一个新项目,只需切换回原始的基本项目并从中创建一个新分支即可。

当然,也可以在项目内创建分支。这都是关于命名约定的。例如,您可以在新项目分支前加上“P_”或“PROJECT_”等前缀,这样您就可以在 git 客户端中快速判断哪些分支是项目。当然,如果您只需要在现有项目中创建新分支,请使用不同的命名方案。我基本上就是这么做的。

您可能不喜欢这个工作流程,但这样我就不需要全局安装软件包。当我进行备份时,我可以简单地删除单个(可能很大)node_modules 文件夹。所有与项目相关的模块都可以通过简单地签出特定项目的分支并运行“来重新安装”npm install“在其 package.json 上。希望它有意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不同项目之间共享node_modules 的相关文章

随机推荐

  • 如何自定义 Android BLE(低功耗蓝牙)gatt 传输速度?

    我正在构建一个使用 BLE 技术传输图像的应用程序 图像不需要立即传输 因此在阅读一些文档后 我得出结论 1 3 Mbit s 是一个合理的选择 From Wikipedia Distance Range lt 100 m lt 330 f
  • php 文件上传时间创建

    我知道有一种方法可以使用 PHP 获取文件夹中的文件名列表 but 目前有什么方法可以获取使用 php 上传 创建文件的日期 时间吗 Unix 不跟踪文件的创建时间 只跟踪文件的更改 修改和访问时间 您可以使用文件时间 https www
  • 从命令行参数打开文件

    我正在尝试创建一个汇编程序 该程序创建在命令行 argv 1 上指定的文件 如果字符串已经存储在其中 它工作得很好 但是如果我按原样运行它 而 file name 没有移动到 rbx 它工作得很好 section text global s
  • dynamodb.put().promise() 不返回 put 对象

    我正在尝试利用 aws 和 dynamo db 的异步 等待功能 下面是如何在 async wait 之前放置对象的示例 正 如您在回调中看到的 您可以访问包含放置对象的数据 然而 在使用 async 和 Promise 的第二个代码块中
  • 编码 Katas 用于练习重构遗留代码

    近几个月来 我对 katas 编码非常感兴趣 我相信它们是磨练我的编程技能和提高我在工作中编写的代码质量的好方法 有很多地方都可以找到卡塔斯 喜欢 http codekata pragprog com http codekata pragp
  • 如何将宽字符串文字与 PRId32、PRIu64 等连接?

    假设我需要打印一个格式化的字符串int32 t使用 printf 格式说明符
  • java中new String[]{}和new String[]的区别

    I am fresher在java中 我对java有疑问 那是 String array new String 有什么用 here 有什么区别String array new String and String array new Stri
  • 模糊图像的特定部分(矩形、圆形)?

    我想模糊矩形或圆形图像 经过谷歌搜索后 我发现模糊整个图像很容易 但很难模糊图像的特定部分 矩形 圆形 那么怎么可能呢 提前致谢 只需设置你的UIImageView属性名称为 imageView 并在实现文件中以相同的顺序添加以下四个方法
  • ggvis 交互式图形无法按预期使用反应值工作

    我对以下示例有问题ggvis代码的目的是制作一个绘图 当您将鼠标悬停在该组的任何成员上时 突出显示整个点组 然后 我希望突出显示在您将鼠标悬停后立即消失 发生的情况是 突出显示最初起作用 但当您将鼠标悬停时 突出显示会保留下来 并且只有当您
  • 当填充大型可观察数组时,我可以加快淘汰速度吗?

    我有一个 Web 应用程序 它对某些数据执行 SOAP 请求 并使用结果填充淘汰视图模型 我目前收到了大约 1000 个订单项 必须将它们推送到我的淘汰视图模型上 在 Chrome 中对页面进行分析表明 大部分加载时间 CPU 都花费在 K
  • .htaccess 重定向到 HTTPS(子域除外)

    我想将所有非 https 请求重定向到 https 接受对子域的请求 例如 http example com gt https example com http example com page gt https example com p
  • Laravel:如何使用查询生成器添加 where 子句?

    我有这个查询 使用 Laravel 查询生成器进行 rows DB table elements gt where type 1 对应于 SELECT from elements WHERE type 1 现在 在某些情况下 我需要添加第二
  • iMacros 等待页面加载

    我过去一直使用 iMacros 让宏等待页面加载非常简单 设置 等待页面完成 是然而现在这不起作用 从 iMacros 网站看来http wiki imacros net 等待页面完成 http wiki imacros net WAITP
  • 使用 Volley 且不使用 HttpEntity 处理 POST 多部分请求

    这并不是一个真正的问题 但是 我想在这里分享一些我的工作代码 供您需要时参考 据我们所知HttpEntity从 API22 开始弃用 并从 API23 开始完全删除 目前 我们无法访问Android 开发人员上的 HttpEntity 参考
  • 以编程方式删除焦点?

    我有一个 jquery ui 对话框 其中包含动态加载的选项卡 JSON 内容 由于复杂性 我无法真正发布小提琴或相关代码 代码太多 发生的情况是 当对话框打开时 您可以通过选项卡浏览对话框中的元素 直到第一个选项卡 之后 您将无法通过 T
  • 在 Swift 中转换字符和 CodePoint

    我可以直接在 Swift 字符与其 Unicode 数值之间进行转换吗 那是 var i Int A plain integer index var myCodeUnit UInt16 myString utf16 i Would like
  • 在Android中使用System.img的目的是什么?

    Android 中的 System img 是什么意思 使用它的目的是什么 它是Android文件系统 这意味着Android需要的所有支持文件 应用程序 还有框架 Dalvik VM 初始化脚本等 文件系统的另一部分是 userdata
  • Android 应用程序 - 如何将画布上的位图绘图保存为图像?检查代码?

    我尝试使用以下代码 在画布上绘制 将画布保存到图像上 问题 当我尝试保存图像时 它显示空指针错误并且没有保存任何内容 请帮助我找到代码的问题或建议我一个替代方案 它的作用完全相同 提前致谢 在画布上绘制的代码 package com exa
  • 我想在单击 onTap 时更改作为 ListView 子级的 Custom ListTile 的颜色,并将其他子级颜色设置为默认颜色?

    在抽屉中 在列表视图中 想要在单击 onTap 时更改自定义 ListTile 的颜色并将所有其他子项的颜色设置为默认值 class CustomListTile extends StatelessWidget final Color it
  • 在不同项目之间共享node_modules

    我正在开发各种 Angular 2 项目 我想在多个项目之间共享 node modules 文件夹 我想创建一个这样的结构 MainFolder Project1 Project2 package json 所以我所有的项目都只有 1 个