gpt4 book ai didi

javascript - 如何让 Webpack 使用 .hbs 文件?

转载 作者:数据小太阳 更新时间:2023-10-29 04:21:17 26 4
gpt4 key购买 nike

我正在尝试使用 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'
}
};

最佳答案

Webpack 不支持 .htmlHtmlWebpackPlugin 是执行 html 操作的插件。

HtmlWebpackPlugin 的基本目的是将编译后的文件作为 script/link 标签附加到它获取的模板文件中,它可以工作用字符串替换,所以那个文件是什么并不重要。

在我的一个项目中,我使用 PHP 作为 HtmlWebpackPlugin 将包注入(inject)其中的模板。

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

您可以做的是,在 webpack 将 bundle 注入(inject) handlebars 模板后,您可以读取并将其用作您的模板,并使用 handlebar 的节点 api 渲染 html。

关于javascript - 如何让 Webpack 使用 .hbs 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com