【问题标题】:Build Package.Json From Existing Node_Modules Folder?从现有的 Node_Modules 文件夹构建 Package.Json?
【发布时间】:2017-07-11 07:40:23
【问题描述】:

我有一个可以工作的 node_modules 文件夹,并且我尝试了许多 package.json 的排列,它们应该会创建相同的结果并创建非常接近的结果,但是我的项目不会构建。我不知道如何解决这个问题。

我使用npm list匹配了版本并手动添加到我的package.json,我使用winMerge来尝试找出差异。

我现有的 node_modules 文件夹可以工作,但如果我重建它,它会惨遭失败。我无计可施。

编辑Node: 6.9.5NPM 4.2.0

【问题讨论】:

  • "but my project will not build" 错误是什么?
  • 好吧,它可以构建,但我对 react-router 有疑问。我现有的 Node_Modules 文件夹不会导致任何错误。我找不到它们之间的任何差异,除了我正在使用的包的补丁级别依赖项和babel-generator 6.22 的小怪异取决于我的非工作文件夹中的trim-right,而相同的包和版本不依赖于@ 987654329@在工作中。
  • @RaR node init 没有从我的 node_modules 文件夹中构建包列表。我确实看到了那个帖子。

标签: node.js npm


【解决方案1】:

您可以通过以下方式在您选择的位置创建 package.json 文件 运行:

npm init
  • 您可以回答 npm init 运行时提出的问题或 您可以按 Enter 直到所有问题都完成并更新 其他时间在创建的 package.json 中的问题。
  • package.json 文件创建后,按照建议创建脚本 here

创建脚本后运行

node script.js
  • 将终端中列出的依赖项复制到“依赖项”中: {} 您刚刚创建的 package.json 文件的部分。
  • 完成。

【讨论】:

    【解决方案2】:

    您可以在 node_modules 所在的同一文件夹中运行 npm init,这将创建一个 package.json,然后是命令提示符。

    【讨论】:

    • 这只是创建了一个package.json,不是吗?它不会用现有 node_modules 文件夹中的包填充它吗?
    • 它会创建 package.json,其中包含来自 node_modules 的所有依赖项。
    • @mairo0820 我已经用节点v14.8.0 npm 6.14.7 尝试了这个,但没有运气。还有其他先决条件吗?
    【解决方案3】:

    您可以尝试使用 shrinkwrap 来确定现有 node_modules 文件夹中的依赖项。

    https://docs.npmjs.com/cli/shrinkwrap

    它应该创建一个 npm-shrinkwrap,所有版本都与 node_modules 文件夹中当前使用的版本一致,npm shrinkwrap

    在第二个系统或第二个文件夹中,将 npm-shrinkwrap.json 放在 package.json 旁边,然后尝试 npm install。在最佳情况下,它将完全按照现有位置重新创建您的模块。

    如果这没有帮助 - 你能发布一些更详细的错误输出吗?

    【讨论】:

    • 非常感谢弗兰克。我会尽快尝试。听起来很有希望。
    • 当 package.json 引用 NPM 包的分支时,关于使用此工具的任何建议?它告诉我分叉包的所有依赖项在一系列错误消息中都是无关的。
    • 在 GitHub 上有一个问题条目,其中有一个解决方法:``` 更新:在 package.json 中使用带有提交哈希(而不是分支名称)的完整 git URL 似乎可以解决这个问题。例如,将“jquery/jquery#master”更改为“git://github.com/jquery/jquery#73bf35ecf31867d7ed4662374121efa310cf9f8d”收缩包装成功。 ``` 见这里:github.com/npm/npm/issues/11736
    • 非常感谢您的帮助。很棒的提示。
    • 您好@FrankSchmid,感谢您的解决方案,但是当我尝试执行 ng serve 在控制台中显示此错误时,我发现了一个问题:@angular/compiler-cli 包不正确已安装。
    猜你喜欢
    • 2019-01-20
    • 2016-04-05
    • 2018-05-27
    • 2021-03-21
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2016-05-24
    • 2014-02-03
    相关资源
    最近更新 更多