我有一个我希望发布到NPM的软件包,它还包含一个如下所示的演示目录:
.
+-- demo
| +-- src
| | +-- main.js
| +-- package.json
+-- src
| +-- main.js
+-- package.json
我的问题是,我希望用户能够运行npm i
和npm start
来启动开发服务器,但我不知道如何运行npm i
演示目录同时作为顶级一级。使用"postinstall": "cd demo && npm i"
会让我无限循环安装。
EDIT1:
我的演示包package.json依赖于使用"parent-module": "file:../"
的父模块。我相信这是原因,但我怎么能解决它。我不想使用自定义npm install
命令。
EDIT2: 即使删除了父依赖项,它仍然会尝试进入无限循环,但现在错误,因为嵌套的演示文件夹不再存在。
答案 0 :(得分:0)
在 npm install
脚本中运行 postinstall
将不起作用,因为这意味着 postinstall 脚本递归调用自身:postinstall 调用 install,这反过来触发 postinstall(以此类推),如定义在npm 脚本生命周期规则。