最近准备用koa搭建个人博客网站,但在开发前就遇到了很多头疼的问题,比如用koa-views渲染模板,代码和官网的例子一模一样,但就是渲染不出来,提示找不到模板路径,真是头疼。
用koa-views渲染模板时配置的第一个参数是模板文件夹根路径,koa-views仓库里提供的路径是:
views(__dirname + '/views', {
map: { html: 'swig' }
}
koa官方给出的示例代码是对的。但根据调试的结果,发现路径根本不对,views的第一个参数要求本地路径,而代码输出的是/views。问题出在了__dirname上!
点开编译后的代码查看__dirname,发现不是文件夹的路径,而是/。原来是webpack的问题!webpack编译时__dirname的默认值是"mock",即/。要使用普通Node的__dirname,需要设置:
node: {
__dirname: false
}
这样的话生成的路径就是本地路径了。