繁体   English   中英

Webpack的select2的TypeError

[英]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"
    }

您可以尝试ProvidePluginCommonsChunkPlugin插件

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM