я использовал webpack для сборки js в одном из моих приложений (о чем я действительно сожалею, но это уже история), и мне нужно было определить 2 точки входа в конфигурации webpack, потому что webpack на самом деле не работает с gulp (gulp - моя задачабегун для строительства) и делает свое дело.
Я получил:
IЯ хотел разделить это, потому что не все функциональные возможности карт требуются на первой странице, и я подумал, что было бы хорошо загрузить его асинхронно.
Так что я разделил это и избегал импорта одних и тех же зависимостей несколько раз, просто нетребуя / импортируя их.
Но по какой-то причине веб-пакеты считают себя умнее и импортируют jquery в любом случае.
Я решил, что правильным способом избежать этого будет внешний раздел в конфигурации веб-пакета, нокак бы настроить его так, чтобы он определял только jquery как внешний для map.js, а НЕ app.js
Итак, вот мой конфиг веб-пакета
const webpack = require('webpack');
const path = require('path');
var config = {
entry: {
app: './src/js/app.js',
map: './src/js/map.js'
},
output: {
filename: '[name].js',
path: __dirname + '/public/static/js'
},
devtool: 'source-map',
module: {
loaders: [
{
test: /.js$/,
loader: 'babel-loader',
exclude: /node_modules\/easy-autocomplete/,
query: {
presets: [
'es2015',
'react',
'flow',
],
'cacheDirectory': true
}
}
]
},
plugins: [
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), // @see https://github.com/jmblog/how-to-optimize-momentjs-with-webpack
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.$": "jquery",
"window.jQuery": "jquery"
}),
],
resolve: {
modules: [
'node_modules',
path.resolve(__dirname, 'src/js'),
],
alias: {
'react': 'preact-compat',
'react-dom': 'preact-compat',
}
}
};
module.exports = config;