为.ejs设置Webpack

时间:2018-03-23 09:50:01

标签: javascript webpack ejs webpack-dev-server

我有使用ejs文件的项目。只有我在服务器端使用ejs文件的问题。代码如下。我需要设置webpack,它会在index.ejs <script src="frontend/build/..."></script><style src="frontend/build/..."/>中插入。只有我知道的是我应该以某种方式使用webpack-middleware。如果有人有经验,请帮我设置。

&#13;
&#13;
// webpack.config.js

import path from 'path';

import ExtractTextPlugin from 'extract-text-webpack-plugin';
import CleanWebpackPlugin from 'clean-webpack-plugin';

const inProduction = process.argv[process.argv.length - 1]
  .match(/[a-z]+$/g)[0] === 'production';

const basic = {
  entry: {
    app: path.join(__dirname, 'frontend/source/scripts/main.js'),
  },
  output: {
    path: path.join(__dirname, 'frontend/build'),
    filename: '[name].[chunkhash].js',
  },
};

const module = {
  rules: [{
      test: /\.css$/,
      use: ExtractTextPlugin.extract({
        use: ['css-loader'],
      }),
    },
    {
      test: /\.js$/,
      use: ['babel-loader'],
      exclude: ['/node_modules'],
    },
  ],
};

const plugins = [
  new ExtractTextPlugin('[name].[contenthash].css'),
  new CleanWebpackPlugin('build'),
];

export default {
  ...basic,
  module,
  plugins,
};
&#13;
<!-- index.ejs -->

<header class="header">Git Rendering</header>
   
    <main class="container">

      <% if (branches) { %>
        <%- include('branches'); %>
      <% } %>

      <% if (commits) { %>
        <%- include('commits'); %>
      <% } %>

      <% if (files) { %>
        <%- include('files'); %>
      <% } %>

      <% if (file) { %>
        <%- include('file'); %>
      <% } %>
      
    </main>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用html-webpack-plugin加载文件。您可以write templates并注入脚本标签 如果您只想添加webpack条目,它将自动发生。

你唯一需要注意的是,html-webpack-plugin也使用了ejs模板。所以你需要change either your or the plugins templating syntax