这是我的webpack配置:
{
entry: './app.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: "bundle.js"
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['env', 'es2015', 'stage-2']
}
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './views/index.ejs',
hash: true,
})
],
node: {
__dirname: false
},
target: 'node'
});
这是我的服务器代码
const express = require('express');
const app = express();
const path = require('path');
const port = process.env.PORT || 3000;
app.use(express.static(path.join(__dirname, '..', 'public')));
app.set('views', path.join(__dirname, '..', 'views'));
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index');
});
app.listen(port, ()=>{
console.log(`Live on ${port}`);
});
当我使用webpack构建它并运行它时给了我错误。我没看到index.ejs工作。我尝试过很多东西。没有什么工作。
是否可以运行输出文件并启动index.ejs?对于html文件,它的工作原理。非常感谢帮助!
答案 0 :(得分:2)
设置视图引擎后添加此行,这应该可以解决问题..
app.set("view engine", "ejs");
app.engine('.ejs', ejs); // <-- this one
显然,这是webpack中的一个错误的结果,问题是already opened。