【问题标题】:How to install nested npm packages with postinstall or single npm command如何使用 postinstall 或单个 npm 命令安装嵌套的 npm 包
【发布时间】:2016-11-30 21:08:11
【问题描述】:

我有一个希望发布到 NPM 的包,其中还包含一个演示目录,如下所示:

.
+-- demo
|   +-- src
|   |   +-- main.js
|   +-- package.json
+-- src
|   +-- main.js
+-- package.json

我的问题是我希望用户能够运行npm inpm start 来启动开发服务器,但我不知道如何在演示目录中同时运行npm i一级。使用"postinstall": "cd demo && npm i" 会让我陷入无限循环的安装。

EDIT1: 我的演示 package.json 依赖于使用 "parent-module": "file:../" 的父模块。我相信这是原因,但我该如何解决。我不想使用自定义的npm install 命令。

EDIT2: 即使删除了父依赖项,它仍然会尝试进入无限循环,但现在由于嵌套的演示文件夹不再存在而出现错误。

【问题讨论】:

  • 我刚试过这个,对我来说很好用。也许您可以发布您的 package.json 文件的内容?
  • @RyanZim 我想我错过了一个不可或缺的信息,我已经添加到我的问题中。我的演示 package.json 依赖于父模块。
  • 遇到同样的问题,安装的运行脚本是"install": "npm i",安装后的运行脚本是"postinstall": cd client && npm i,这陷入了安装的无限循环。我在Linux系统上

标签: npm npm-install


【解决方案1】:

postinstall 脚本中运行 npm install 将不起作用,因为这意味着 postinstall 脚本会递归调用自身:postinstall 调用 install,这反过来会触发 npm 脚本生命周期规则中定义的 postinstall(等等) .

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多