自己写的 rollup 插件,功能是开启一个 web 服务并且同时提供 livereload.js ;
有用 fastify + @fastify/static ,cnpm 安装好像是可以用的,pnpm 因为是用的符号连接读取不到真实的文件内容;
sendFile 好像是 @fastify/static 自带的方法,也没找到正确的使用姿势;
// src/base.js
const monkeyPath = {
base: path.resolve(__dirname, "../"),
liveJS: path.resolve(__dirname, "../node_modules/livereload-js/dist/livereload.js"),
}
// 路由
server.get('/livereload.js', function (req, reply) {
// console.log(monkeyPath.liveJS)
// reply.type('text/javascript').sendFile('livereload.js', monkeyPath.livePath)
fs.readFile(monkeyPath.liveJS, (err, fileBuffer) => {
reply.type('text/javascript').send(err || fileBuffer)
})
})
完整项目在这里:
wdssmq/rollup-plugin-monkey at v1