Open hdmy opened 4 years ago
不用require或者加上触发条件。在node.js中执行一个文件中的代码有很多种方法。可以换几个方法试试。
new Function、vm之类的
主要还是因为文件路径dirname的问题导致的 个人分析:是因为用了数据库(发现脚手架中并没有使用数据库、koa-router 等,遇到了好多问题),这一份会被打包进api.js中,而开发环境里api.js的引入是 MFS文件读取,导致dirname不正确的问题
用这个脚手架最让我舒服的地方就是每次改serve的代码都不用重启一遍,这里的文件读取有办法绕开,或者修正__dirname的可能吗? https://github.com/yi-ge/Vue-SSR-Koa2-Scaffold/blob/master/config/setup-dev-server.js#L84
路径不对没关系,可以在服务器端进行ssr渲染的时候,改写__dirname的值。
可以举个例子吗?在哪里做改写?(应该不是在api/app.js
里直接__dirname = './xxx/xx'这样子吧?)
在https://github.com/yi-ge/Vue-SSR-Koa2-Scaffold/blob/b67d0e81d6e07ea2aa23d377542f761626dbf130/config/ssr.js#L45
行,对eval方法进行改写,换用别的方式加载后端代码。__dirname
的问题就在此处。
问题解决了吗?
请问如何解决这种文件引入问题呢? 实际场景是
sequelize import model
(代码),__dirname的应用绕不过,谢谢!