Node.js npm二级依赖项需要获取一级依赖项package.json(npm子模块依赖项管理)

Node.js npm二级依赖项需要获取一级依赖项package.json(npm子模块依赖项管理),node.js,npm,node-modules,Node.js,Npm,Node Modules,我正在尝试开发一个软件包,以便轻松导入预构建的模块。 因此,我想介绍的用例是ProjectX使用预构建模块Y,因此我的模块可以通过GitHub版本轻松创建这个预构建的发行版。 所以我期待着一个类似这样的依赖结构: X |-Y |-any-prebuilt 但我目前在使用导入时处于最高级别 X |-Y |-any-prebuilt 所以npm和纱线似乎正在使结构变平,因为我可以在安装后发现我的错误,我认为这是一个二级依赖 bash-3.2$ npm install > any-pr

我正在尝试开发一个软件包,以便轻松导入预构建的模块。 因此,我想介绍的用例是ProjectX使用预构建模块Y,因此我的模块可以通过GitHub版本轻松创建这个预构建的发行版。 所以我期待着一个类似这样的依赖结构:

X
|-Y
  |-any-prebuilt
但我目前在使用导入时处于最高级别

X
|-Y
|-any-prebuilt
所以npm和纱线似乎正在使结构变平,因为我可以在安装后发现我的错误,我认为这是一个二级依赖

bash-3.2$ npm install

> any-prebuilt@0.0.3 postinstall /Users/me/workspace/<X>/node_modules/any-prebuilt
> node install.js

Fetching prebuilt:
 version: latest

Platform: osx
Arch: x64
Target dir: ./bin
required user & repo
bash-3.2$npm安装
>任何-prebuilt@0.0.3postinstall/Users/me/workspace//node_模块/任何预构建
>node install.js
获取预构建:
版本:最新
平台:osx
拱门:x64
目标目录:./bin
所需用户和回购
在这种情况下,我有两个问题,我在这里遗漏了什么?我的
任何预构建的
是否也可以获得
Y
package.json


所以我想我现在可以回答我自己的问题了。由于npm版本3,默认情况下,该结构是平坦的(纱线也是如此),因此在依赖项冲突的情况下,它只是非平坦的

因此,对于最终来到这里的未来用户(如果有的话),如果您是最终项目,则有两个选项,您可以在运行npm安装时使用标志

npm install --legacy-bundling
在我的情况下,这是不可能的,所以我不得不修改我的代码,使其更加面向API。因此,使用我的库的预构建包实际上必须提供信息

我已通过安装后事件一级。因此,basicalle在
Y
中声明一个
postbuild.js
文件,该文件执行以下操作:

require('any-prebuilt').install(require('./package.json').prebuilt)
所以最后一条建议不要添加需要升级信息的脚本

参考资料: