如何使用postinstall或单个npm命令安装嵌套的npm包

时间:2016-11-30 21:08:11

标签: npm npm-install

我有一个我希望发布到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: 即使删除了父依赖项,它仍然会尝试进入无限循环,但现在错误,因为嵌套的演示文件夹不再存在。

1 个答案:

答案 0 :(得分:0)

npm install 脚本中运行 postinstall 将不起作用,因为这意味着 postinstall 脚本递归调用自身:postinstall 调用 install,这反过来触发 postinstall(以此类推),如定义在npm 脚本生命周期规则。