【问题标题】:Update package.json files with dependencies manually copied over into node_modules使用手动复制到 node_modules 的依赖项更新 package.json 文件
【发布时间】:2019-08-30 05:24:35
【问题描述】:

根据标题,我一直在以非常糟糕的方式开发我的 react 应用程序。

由于我在离线环境中工作,每当我需要安装新的包以在我的应用程序中使用时,我都会手动将其复制到我的 node_modules 文件夹中。问题是我通常不会使用新安装的依赖项更新我的 package.json 文件。

因此,很长一段时间后,我的 node_modules 文件夹变得非常大(300 ish)。

当我将应用程序发送给我的同事进行开发并且他运行 npm install "some package" 时,npm 删除了我手动安装的包的一半以上(哎哟)。 (这也解释了 npm 在 https://github.com/npm/npm/issues/17929#issuecomment-322881421 上的行为)

我是否可以通过手动安装在 node_modules 文件夹中的所有依赖项来更新我的 package.json 文件?除了必须手动键入所有 300 个加模块(+ 下载的模块,因为它是另一个 node_module 的依赖项)?

我非常绝望,所以任何建议都会非常感激。

【问题讨论】:

    标签: node.js npm npm-install package.json package-lock.json


    【解决方案1】:

    您可以尝试删除您的package-lock.json,运行npm shrinkwrap,然后将生成的npm-shrinkwrap.json 中的依赖项粘贴到您的package.json 中。这将比您的package.json 通常更详细,因为我认为它会明确列出所有依赖项的依赖项(如package-lock.json),但它应该为您提供一个文件,您的应用程序可以通过以下方式安装一个同事。

    【讨论】:

    • npm-shrinkwrap 如何记录来自 node_modules 的依赖使用情况?它不只是创建一个具有锁定依赖关系的收缩包装文件吗?
    • @KiranMathewMohan 我不确定它是如何工作的,但我知道它可以在没有 package-lock.json 或 package.json 的情况下工作。我的理解是,它可以在必要时仅从 node_modules 中找出依赖关系树,这听起来像是 OP 正在寻找的东西。不过我可能是错的;我没有广泛使用收缩包装。
    • 这正是 OP 想要做的。也许我也会尝试一下,看看能不能解决
    • 我试试这个,看看效果如何!
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2012-01-31
    相关资源
    最近更新 更多