Webpack -p在我的ejs模板中禁用了es2015特性
webpack -p disables es2015 features in my ejs templates
我为我的项目设置了一个简单的webpack设置,它在前端使用ejs- template:
<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模板,但这并没有解决它
我的英语不好:(看看代码:
module: {
preLoaders: [
{
test: /'.ejs$/, loader: 'ejs-compiled'
}
],
loaders: [
{
test: /'.e?js$/, // <-- look!
exclude: /node_modules/,
loader: "babel-loader",
query: {
presets: ['es2015']
}
}
]
},
'ejs-compiled-loader': {
htmlmin: true,
htmlminOptions: {
removeComments: true
},
_with: false // <-- important!!!
}
在EJS
<% var {station} = locals; %>
<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>
相关文章:
- 使用lodash的特定对象特性值
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- 为什么递归生成器函数没有't在ES2015工作
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- ES2015 Promise链-为什么promiseized函数会立即运行
- 铁路超高接入特性“;createdAt”;云代码解析框架
- ECMAScript 6的哪些特性意味着严格模式
- 缩短ES2015导入路径
- 为什么字符串在 ES2015 中是可迭代对象
- ES2015“导入”在带有--harmony_modules选项的节点v6.0.0中不起作用
- 使用 foreach js es2015 进行动态导入
- ES2015:从覆盖的类调用内部方法
- importing TypeScript vs ES2015
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 应用构造函数特性没有结果
- QML:如何等到由于特性更改而重新绘制零部件
- 有没有一种方法可以创建一个对象并同时为其指定一个动态特性
- 需要绕过ExtJS的异步特性
- 如何在ES2015中将模块中的选定函数作为对象导入
- Webpack -p在我的ejs模板中禁用了es2015特性