上下文
我有一个主项目,里面有多个节点项目作为子目录。每个人都有自己的node_modules
目录和package.json
个文件。我希望在我的主package.json
文件中定义一个npm脚本,它同时运行来自每个项目的npm脚本。
守则
我的目录结构如下:
main:
...
package.json
- sub-project-1
- ...
package.json
- sub-project-2
...
package.json
子项目-1 /的package.json:
...
"scripts": {
"start": "node run foo.js"
}
子项目-2 /的package.json:
...
"scripts": {
"start": "node run bar.js"
}
Main package.json:
...
"scripts": {
"start": "/* Here I want to do something like npm sub-project-1/ start && npm sub-project-2/ start */
}
现在,显然我可以将sub-project-1/package.json
的{{1}}脚本和start
的启动脚本中的命令复制并粘贴到bash脚本中并运行它。但我希望能够更改这些sub-project-2/package.json
脚本,而无需每次都手动更改bash脚本。有没有办法做到这一点?
答案 0 :(得分:0)
1.您还可以编写一个python脚本来解析子目录的所有package.jsons,然后生成master package.json文件
2.or你也可以编写一个python脚本来解析子目录的所有package.jsons,然后生成一个shellcript,其中包含了mater package.json 将在"开始"。
中调用它答案 1 :(得分:0)
以下不是并发的;但是,您可以 通过这种方法更改npm启动脚本。
我还要提到,这不是世界上最具扩展性的方法。但这很简单,所以我认为分享可能会有所帮助。
这儿...
主要package.json:
...
"scripts": {
"start": "cd Sub-project-1 && npm run start && cd ../Sub-project-2 && npm run start && cd ../ && <parent project start script here>"
}
使用此脚本,您只需要遍历子项目,然后返回运行父项目的脚本即可。