最近在一直hugo-book这个主题的时候发现在调试时不能同时通过 npx eleventy --serve && rollup -w -c
,找了很多资料没有找到合适的解决办法。
最后通过GPT4解决,利用 npm-run-all
这个包处理。
ChatGPT4回答
可以使用npm的concurrently
或者npm-run-all
来并行运行多个scripts。
先安装concurrently
:
然后在package.json
中添加以下script:
这个script会先运行rollup -c --watch
和npx eleventy --serve
。其中rollup -c --watch
会在文件更改时重新运行 rollup,而 npx eleventy --serve
会在文件更改时重新运行 11ty。优点是这两个命令同时运行,所以他们都会在文件更改时立即更新,不需要手动重新运行它们。
也可以安装使用npm-run-all
:
然后在package.json
中添加以下script:
其中run-p
是npm-run-all
提供的命令,可以并行运行多个npm scripts,上面的script效果跟使用concurrently是一样的。
不过这些方法都不适合先后顺序执行rollup和11ty的情况,因为--watch
模式一旦开始就不会结束,它会一直等待文件更改然后再次运行。如果你的用例确实需要先执行rollup然后执行11ty,而且两者不能并行,那么你可能需要创建一个node.js脚本来依次调用这两个命令,并在每次文件更改时重新运行该脚本。