有没有办法在每个Meteor服务器重启时运行npm脚本?
我尝试了postinstall
挂钩,但它只在第一个本地应用程序启动时运行。
我认为必须有办法,因为重启会触发几个构建过程,其中一些必须是“可挂钩的”。
我第一次考虑使用build plugins,但似乎他们将大量配置从我的package.json
移开。
任何人都知道这件事吗?
答案 0 :(得分:0)
您可以在服务器端的Meteor.startup()
代码中运行npm脚本。以下示例应位于/server
文件夹下可能会有所帮助。
import { exec } from 'child_process';
Meteor.startup(() => {
async function sh(cmd) {
return new Promise(function (resolve, reject) {
exec(cmd, (err, stdout, stderr) => {
if (err) {
reject(err);
} else {
resolve({ stdout, stderr });
}
});
});
}
async function excScript() {
let { stdout } = await sh('npm -ls'); // runs "npm -ls"
for (let line of stdout.split('\n')) {
console.log(`npm -ls: ${line}`);
}
}
excScript();
}