如何使Webpack与.hbs文件一起使用?

时间:2016-07-01 00:13:01

标签: javascript webpack ghost-blog

我正在尝试使用React为Ghost制作主题。我使用webpack作为我选择的构建工具。如何告诉webpack提供特定的.hbs文件?现在看来,Webpack只支持.html个文件。下面是我的开发配置... webpack通常支持传递给它的任何内容吗?

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: [
  'webpack-dev-server/client?http://localhost:2368',
    'webpack/hot/only-dev-server',
    './src/router'
  ],
  devtool: 'eval',
  debug: true,
  output: {
    path: path.join(__dirname, 'public'),
    filename: 'bundle.js',
    //publicPath: '/static/'

  },
  resolveLoader: {
    modulesDirectories: ['node_modules']
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new HtmlWebpackPlugin({
      template: './public/default.hbs',
      //hash: true,
      inject: 'body',
      filename: 'default.hbs'
    })

  ],
  resolve: {
    extensions: ['', '.js', '.sass', '.css', '.hbs']
  },
  module: {
    loaders: [
    // js
    {
      test: /\.js$/,
      loaders: ['babel'],
      include: path.join(__dirname, 'src')
    },
    // CSS
    {
      test: /\.sass$/,
      include: path.join(__dirname, 'src'),
      loader: 'style-loader!css-loader!sass-loader'
    },
    // handlebars
    {
      test: /\.hbs$/,
      include: path.join(__dirname, 'public'),
      loader: 'handlebars-template-loader'
    }
    ]
  },
  node: {
    fs: 'empty'
  }
};

1 个答案:

答案 0 :(得分:0)

Webpack不支持.htmlHtmlWebpackPlugin是执行html操作的代码。

HtmlWebpackPlugin的基本目的是将编译后的文件作为script / link标记附加到它获取的模板文件中,它可以与字符串替换一起使用,因此不会不管是什么文件。

在我的一个项目中,我使用PHP作为HtmlWebpackPlugin注入捆绑包的模板。

因此,从理论上讲,HtmlWebpackPlugin在不了解把手语法的情况下“支持”把手。

您可以做的是,在webpack将捆绑包注入到车把模板中之后,您可以阅读并将其用作模板,并使用车把的节点api渲染html。