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

如何使用postinstall或单个npm命令安装嵌套的npm包,npm,npm-install,Npm,Npm Install,我有一个包,希望发布到NPM,其中还包含一个演示目录,如下所示: . +-- demo | +-- src | | +-- main.js | +-- package.json +-- src | +-- main.js +-- package.json 我的问题是,我希望用户能够运行npm I和npm start来启动开发服务器,但我不知道如何在演示目录中与顶级目录同时运行npm I。使用“postinstall”:“cd-demo&&npm-i”将我置于无限的安装循环中

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

.
+-- demo
|   +-- src
|   |   +-- main.js
|   +-- package.json
+-- src
|   +-- main.js
+-- package.json
我的问题是,我希望用户能够运行
npm I
npm start
来启动开发服务器,但我不知道如何在演示目录中与顶级目录同时运行
npm I
。使用
“postinstall”:“cd-demo&&npm-i”
将我置于无限的安装循环中

EDIT1: My demo package.json依赖于使用
的父模块:“父模块”:“文件:../”
。我相信这是原因,但我怎样才能解决它呢。我不想使用自定义的
npm安装
命令

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

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

我刚刚尝试过这个,它对我来说很好。也许你可以发布package.json文件的内容?@RyanZim我想我遗漏了一条完整的信息,我在问题中补充了这条信息。我的demo package.json取决于父模块。同样的问题,安装的运行脚本是
“install”:“npm i”
,安装后的运行脚本是
“postinstall”:cd客户端和&npm i
,这属于无限安装循环。我在Linux系统上