动态路由问题
pkg打包的时候会自动生成一个虚拟路径/snapshot/…会导致你的路径出现一些问题
而项目中依据route文件夹下的文件动态use相应的router,这就需要动态require,但是这个require的路径会被虚拟路径代替导致取不到,所以可以使用写死声明router的方法
// 原来代码(动态根据路径require)
fs.readdirSync(__dirname).forEach(file => {if (file === 'index.js') {return}const route = require(`./${file}`)app.use(route.routes()).use(route.allowedMethods())})
// 可打包代码(直接写死)app.use(userRouter.routes()).use(userRouter.allowedMethods())app.use(xxxRouter.routes()).use(xxxRouter.allowedMethods())...