【问题标题】:Private NPM modules installed via package.json without a parent directory?通过 package.json 安装的私有 NPM 模块没有父目录?
【发布时间】:2016-08-31 16:39:30
【问题描述】:

我正在为 Node-RED 应用程序 (http://nodered.org/) 构建自定义节点,并将每个节点发布为私有 NPM 模块,并将它们放在我的 package.json 中,如下所示:

"@di-dash/node-red-contrib-didash-output": "0.0.1",

但这会使它们安装在这样的父目录中:

/node_modules/@di-dash/node-red-contrib-didash-output

事实上,它们现在位于父目录中,而不是直接在 node_modules 目录中,就像我刚刚拉入 github 存储库时那样,因为依赖关系阻止了 Node-RED 注意到它们并将它们包含在应用程序中。

我编写了一个 grunt 脚本将它们从父目录中拉出并直接放入 node_modules 并将其作为“安装后”脚本放在 package.json 中,但这必须在应用程序启动后发生,因为 Node-RED 应用程序是'不再拿起我的自定义节点了。

任何想法如何让私有模块在没有父目录的情况下安装,以便它们就像普通(非私有)NPM 模块一样?

像这样: node_modules/node-red-contrib-didash-output

而不是: /node_modules/@di-dash/node-red-contrib-didash-output

【问题讨论】:

    标签: node.js npm npm-install


    【解决方案1】:

    它们不是私有模块,而是它们是scoped modules。它们应该位于与它们所在的范围同名的目录中。使它们安装在根目录中的唯一方法是从包中删除范围。我建议寻求 Node-RED 团队的支持,看看他们是否有针对作用域模块的解决方法。

    编辑:我冒昧为您打开了一个问题 :)
    https://github.com/node-red/node-red/issues/885

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-06
      • 2023-04-06
      • 2014-11-12
      • 2018-10-05
      • 2021-11-04
      • 1970-01-01
      • 2013-02-15
      相关资源
      最近更新 更多