1
我有我的項目一個簡單的WebPack設置,其中在前端使用EJS-模板ES2015特點:的WebPack -p禁用我的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
得到一個精縮的構建,它不能處理換的循環了,給我以下錯誤:
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"
})
]
};
[編輯]:我已經試圖通過巴貝爾第一運行EJS模板,但是這並沒有解決它。
謝謝,但這並不這個配置現在給我一個錯誤'ReferenceError:htmlWebpackPlugin沒有定義' – HumanCatfood
另外,是否有可能在.ejs文件中需要從本地而不是'station'獲取'stations'? – HumanCatfood
如果你禁用'with'(_with:false),那麼'station'是未定義的。 'var station = locals.station' –