繁体   English   中英

在节点js中与webpack捆绑后,如何呈现.ejs文件并查看它?

[英]how to render a .ejs file and view it after bundling with webpack in node js?

这是我的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文件,它的工作原理。 帮助将不胜感激!

在设置视图引擎之后添加此行,这应该可以解决问题。

app.set("view engine", "ejs");   
app.engine('.ejs', ejs);  // <-- this one

显然,这是webpack中的错误导致的,并且已经打开了一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM