Ste*_*ieB 6 javascript ejs ecmascript-6 webpack
看起来如果图像标记在我的index.ejs模板中,我缺少在webpack配置中加载图像的设置.
我的项目中的html文件中的所有图像都在我的构建过程中被正确地重命名并加载,但.ejs文件中的图像标记被忽略.
即在我的.ejs中,如果我有<img src="../../home.png">
它仍然是这样,但在正常的HTML文件中它改变为<img src="12345677.png">
我目前的装载机:
loaders: [
//HTML Files
{
test: /\.html$/,
loader: 'html'
},
//Transpile ES6 to ES5
{
test: /\.js$/,
include: path.join(__dirname, 'src'),
exclude: /node_modules/,
loader: 'babel',
query: {
presets: [
["es2015", {"module": false}]
]
}
},
//Extract Normal CSS
{
test: /\.css$/,
loader: ExtractTextPlugin.extract({ loader : 'css?sourceMap!autoprefixer', publicPath: "../"})
},
//Bundle Less into CSS Code
{
test: /\.less$/,
loader: ExtractTextPlugin.extract({ loader : 'css?sourceMap!autoprefixer!less?sourceMap', publicPath: "../"})
},
//Images
{
test: /\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/,
loader: 'file'
}
]
Run Code Online (Sandbox Code Playgroud)
和重要的插件:
plugins.push(
new HtmlWebpackPlugin({
hash: true,
filename: 'index.html',
template: './src/index.ejs',
favicon: './src/favicon.ico',
inject : false
}),
// Write out CSS bundle to its own file:
new ExtractTextPlugin({
filename: 'css/[contenthash].styles.css',
allChunks: true
}),
);
Run Code Online (Sandbox Code Playgroud)
只是为了提供更新的答案。在 Webpack 4 中,您可以在.ejs
不带html-loader
.
src
将img
标签中的属性更改为:
<!-- index.ejs -->
<img src="<%= require('../../home.png') %>" alt="image text">
Run Code Online (Sandbox Code Playgroud)
启用 CommonJS 模块语法 esModule: false
// webpack.config.js
module: {
rules: [
...,
test: /\.(png|jpg|etc)$/,
use: [{
loader: "file-loader", // or url-loader
options: {
...,
esModule: false,
}
}]
]
}
Run Code Online (Sandbox Code Playgroud)
如果您希望将变量与 一起使用require
,您可能需要更改语法,请参阅Github 上的其他 SO 问题和此示例:
// webpack.config.js
new HtmlWebpackPlugin({
image: '/path/to/image.png',
})
Run Code Online (Sandbox Code Playgroud)
<!-- index.ejs -->
<img src="<%=require('html!./' +htmlWebpackPlugin.options.image + '.html' ) %>" alt="image text">
Run Code Online (Sandbox Code Playgroud)
我认为ejs 没有图像加载器支持
您可以尝试此链接underscore-template loader来按照作者在此线程中的建议加载图像文件
webpack 的另一个加载器包括ejs-loader
归档时间: |
|
查看次数: |
1663 次 |
最近记录: |