![](/img/trans.png)
[英]TypeError: jquery__WEBPACK_IMPORTED_MODULE_1___default(...)(...).select2 is not a function
[英]TypeError of select2 with Webpack
我已经通过Webpack成功地将select2.js的本地副本与多个* .js文件捆绑在一起。 但是,它总是抛出TypeError,警告e.select2不是函数。 有趣的是,如果我需要CDN中的select2.js,它可以在初始页面加载时工作,但在刷新页面后会引发相同的错误。
在进行捆绑之前,从未发生过此错误。
有人可以建议吗? 谢谢!
根据要求,我将共享下面的webpack.config.js。
var path = require("path");
var webpack = require('webpack');
var BundleTracker = require('webpack-bundle-tracker');
module.exports = {
context: __dirname,
entry: {
annotation: './assets/js/annotation_index',
subject: './assets/js/subject_index',
highchart: './assets/js/highchart_index',
protocol: './assets/js/protocol_index',
subscription: './assets/js/subscription_index'
},
output: {
path: path.resolve('./assets/bundles/'),
filename: "[name].js",
},
externals: [
require('webpack-require-http')
],
plugins: [
new BundleTracker({filename: './webpack-stats.json'})
],
module: {
loaders: [
{ test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader', query: {compact: false} }, // to transform JSX into JS
],
},
resolve: {
modulesDirectories: ['node_modules', './assets/js/annotation'],
extensions: ['', '.js', '.jsx'],
alias: { jquery: "./jquery"}
},
}
更新1 :由于OP使用脚本标签加载jQuery,因此更好的选择是使用外部选项不捆绑jQuery。
externals: {
"jquery": "jQuery"
}
您可以尝试ProvidePlugin
和CommonsChunkPlugin
插件
entry: {
vendor: ["jquery", "other lib1", 'other lib2'],
...
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new CommonsChunkPlugin({
name: "vendor",
filename: "vendor.js"
minChunks: Infinity,
})]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.