Когда я компилирую свой javascript с Webpack в режиме development , он не работает на устройствах Android , в то время как везде работает нормально. Когда я компилирую его в режиме production , он работает и на Android . Кто-нибудь может сказать, почему это? Было бы больше смысла, если что-то сломалось из-за минимизации, но мне кажется настолько странным, что улучшенный код не работает, пока минимизированный код работает.
обновление: под словом «это не работает» я подразумеваю, что ни одна строка кода не выполняется. Ни одного "console.log ()", "alert ()" или чего-либо еще. Я не получаю никаких ошибок, так как везде работает нормально, но на Android. Я использую testbot.com для тестирования на Android, поэтому у меня нет консоли отладки, что делает меня очень слепым. Я также пытался свести весь код и зависимости только к jquery, но даже в этом случае ничего не работает на Android, когда код компилируется в режиме разработки.
Мой конфигурационный файл:
module.exports = {
entry: entry,
output: {
path: path.resolve(__dirname+'/public/dist', 'js'),
filename: '[name]-min.js'
},
mode:'production',
optimization:{
minimizer:minimizer
},
plugins: plugins,
module:{
rules: rules
},
}
Объект минимизатора:
module.exports = [
new TerserPlugin(),
new OptimizeCssAssetsPlugin({})
]
Плагины:
module.exports = [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
jquery: "jquery",
"window.jQuery": "jquery",
"window.$": "jquery",
swal: "sweetalert2/dist/sweetalert2.js"
}),
new MiniCssExtractPlugin({
filename: "../css/[name].css",
chunkFilename: "[id].css"
}),
new WriteToFilePlugin({
filename: path.resolve(__dirname + '/../../src', 'assetVersion.js'),
data: 'module.exports = ' + Number(assetVersion + 1)
}),
new HardSourceWebpackPlugin(),
]
Правила:
module.exports = [{
test: /\.(sa|sc|c)ss$/,
use: [
{ loader: MiniCssExtractPlugin.loader },
{ loader: 'css-loader' },
{
loader: 'postcss-loader', // Run postcss actions
options: {
plugins: function() { // postcss plugins, can be exported to postcss.config.js
return [
require('autoprefixer')
];
}
}
},
{ loader: 'sass-loader' },
],
},
{
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: '../../fonts/',
publicPath: '/fonts'
}
}]
},
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: ['transform-es2015-arrow-functions']
}
}
}
]