Laravel Mix似乎无法将vendor.js和manifest.js转换为ES5。在iPhone Safari和IE 11上失败。
IE DevTools显示以下错误:
看来它仍然具有ES6功能:
其他文件似乎可以转存,例如app.js
和块。
这是我的webpack.mix.js
let mix = require('laravel-mix');
let options = {
processCssUrls: false,
}
let config = {
output: {
chunkFilename: 'assets/js/chunks/[name].js',
publicPath: '/'
}
}
if (mix.inProduction()) {
config.output.chunkFilename = 'assets/js/chunks/[name].[chunkhash].js'
}
mix
.js('resources/assets/js/app.js', 'public/assets/js')
.sass('resources/assets/sass/web.scss', 'public/assets/css')
.sass('resources/assets/sass/fonts.scss', 'public/assets/css')
.copy('resources/assets/img', 'public/assets/img')
.copy('node_modules/@fortawesome/fontawesome-free/webfonts','public/assets/webfonts')
.extract([
// Libraries...
])
.disableNotifications()
.webpackConfig(config)
.options(options)
.sourceMaps()
if (mix.inProduction()) {
mix.version()
}
还有我的.babelrc
{
"plugins": ["syntax-dynamic-import"]
}
我尝试了以下操作:
babel-preset-es2015
并将es2015
添加到我的.babelrc
预设中。.babel('[...]/vendor.js', '[...]/vendor.es5.js')
添加到我的webpack.mix.js 如何获取vendor.js和manifest.js文件以移植到ES5?或者至少可以使其与IE 11和iPhone Safari一起使用。
答案 0 :(得分:1)
经过一些研究,很明显Laravel Mix 4.x不会转运包含的软件包。为此,请在混合命令之前将以下内容添加到webpack.mix.js
文件中:
mix.webpackConfig({
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /(bower_components)/,
use: [
{
loader: 'babel-loader',
options: Config.babel()
}
]
}
]
}
});
这将覆盖默认配置,该默认配置将node_modules
排除在转译带来的情况之外。