【问题标题】:Why is NPM removing the main: attribute from package.json when installing modules? ( Node JS 8.11.3 NPM 5.0.2 )为什么 NPM 在安装模块时从 package.json 中删除 main: 属性? (节点 JS 8.11.3 NPM 5.0.2)
【发布时间】:2018-12-04 13:59:08
【问题描述】:

我最近将 Nodejs 从 8.11.2 或 8.11.1 更新到 8.11.3,当我在我的项目上运行 NPM install 时,它更新了模块以及我在项目中使用的一些模块(大多数是依赖项),例如,ip、bignumber.js、inflection,为了命名一些细节,npm 从 package.json 文件中删除了 "main": 属性。我一直有相同的依赖关系,以前从未遇到过这个问题。所以当我去运行我的项目时,我收到了错误消息:

"Cannot find module 'ip'"

例如。当我转到模块的git页面并从项目页面的package.json中复制“main”:属性时,它解决了问题。

"main": "lib/ip",

我想知道的是如何让 NPM 移除 "main": 属性。我需要 NPM 来完整地安装模块...我无法对模块进行修改以使其正常工作,我的开发机器使用的是 Windows 10。我通常在测试后将项目提交到服务器上的 git它在本地知道一切正常。我不上传模块,当我提交时,服务器会从存储库中提取依赖模块。服务器使用 NPM 并且更改为其他东西并不容易,因为我不控制服务器的这方面。

我不想担心服务器上发生同样的事情......

【问题讨论】:

  • 这听起来像是github.com/npm/npm 的工作,而不是 Stackoverflow 的工作。 search and research 的一部分是在最明显的地方寻找答案,当您用尽这些选项时,SO 会在这里为您服务。
  • 我确实看过,并没有关于这个问题的任何内容。 Stack Overflow 有一个 NPM 标签……显然是为了提出与 NPM 直接相关的问题。我发现 Stack Overflow 通常拥有更多的受众,并且更有可能获得对问题/问题的良好答案。如果您碰巧找到了答案,也许您可​​以发布答案的链接...
  • 我的意思是“提交问题”。在 stackoverflow 上询问很好,但这绝对是“首先提出问题”的领域,因为他们是直接专家,而在涉及开源软件错误时,stackoverflow 是二手专业知识。总是先问软件的开发者,或者先问再问。作为奖励,如果您在那里得到答案,您也可以在此处发布,以帮助未来的访问者。

标签: node.js npm


【解决方案1】:

原来我的电脑上有两个版本的 NPM,并且 node 目录中的旧版本已经过时,并且 node 更新没有删除它。

我发现这个问题:How do I update npm on Windows? 对解决问题很有用。

一旦我更新到当前版本的 npm,问题就解决了。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 2022-01-03
    • 2014-06-12
    • 2017-06-05
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多