【发布时间】:2016-09-08 03:44:51
【问题描述】:
我的项目有一个简单的 webpack 设置,它在前端使用 ejs 模板:
<ul>
<% for (let station of stations) { %>
<li>
<strong><%= station.name %></strong>
<br/>
Coach Code: <%= station.nationalcoachcode %><br/>
Distance: <%= (station.distance / 1000 ).toFixed(1) %> km
</li>
<% } %>
</ul>
当我使用 webpack-dev-server 提供它或使用 webpack 构建它时,这非常有效,但是当我尝试使用 webpack -p 获得一个缩小的构建时,它无法再处理 for-of 循环并给我以下错误:
ERROR in app.js from UglifyJs
SyntaxError: Unexpected token name «station», expected punc «;» [./~/ejs-loader!./src/app/stations.tmpl.ejs:7,0]
这是我的webpack.config.js:
const path = require('path');
const HtmlWebpackPlugin = require ( 'html-webpack-plugin' );
const webpack = require ( 'webpack' );
const PATHS = {
app: path.join( __dirname , 'src' ),
build : path.join( __dirname , 'build' )
};
module.exports = {
entry: {
app: PATHS.app
},
output: {
path: PATHS.build,
filename : '[name].js'
},
devtool: 'source-map',
module: {
loaders: [{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
}
}, {
test: /\.ejs$/,
loader: 'ejs-loader'
}]
},
resolve: {
extensions: ['', '.js', '.json', 'ejs']
},
plugins: [
new HtmlWebpackPlugin({
template: path.join(PATHS.app, 'index.ejs')
}),
new webpack.ProvidePlugin({
_: "lodash"
})
]
};
[edit]:我已经尝试过先通过 babel 运行 ejs 模板,但没有解决问题。
【问题讨论】:
标签: javascript ecmascript-6 webpack ejs