问题遇到的现象和发生背景
一个 rollup.js 的插件,开启一个 web 服务然后返回 livereload.js;
插件另外依赖于 livereload-js;
cnpm 安装后功能正常,pnpm 则找不到文件;
补充:最终项目 A 依赖 rollup-plugin-monkey,rollup-plugin-monkey 依赖 livereload-js,而我是 rollup-plugin-monkey 的作者;
问题相关代码,请勿粘贴截图
// 路径获取
import path from 'path'
import { fileURLToPath } from 'url'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
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)
})
})
我的解答思路和尝试过的方法
NodeProject/node_modules/rollup-plugin-monkey/dist/index.mjs
NodeProject/node_modules/rollup-plugin-monkey/node_modules/livereload-js/dist/livereload.js ← pnpm 安装并不存在这个路径