我正在尝试迁移一个旧项目以使用.我写了一些自定义插件,不再工作。虽然我认为这个问题应该发生在其他人身上,但我找不到任何关于它的帖子。webpack这是我包含:base.js(function ($) {    $.fn.my_extension = function () {       alert("I am found!");    };}(jQuery));这就是我在模板中使用它的方式:<script type="text/javascript">    $(document).ready(function() {        $('#my-id').my_extension();    });</script>这是我在我的包含:index.js// JS Dependenciesimport 'jquery';...// Custom JSimport '../js/base.js';这是我的:webpack.config.jsvar path = require('path');var webpack = require('webpack');var BundleTracker = require('webpack-bundle-tracker');module.exports = {    context: __dirname,    mode: 'development',    entry: './static/js/index.js',    output: {        path: path.resolve('./static/webpack_bundles/'),        filename: "[name]-[hash].js"    },    module: {        rules: [                        {                test: require.resolve('jquery'),                use: [{                    loader: 'expose-loader',                    options: 'jQuery'                }, {                    loader: 'expose-loader',                    options: '$'                }]            },            ...        ],    },    plugins: [        new BundleTracker({filename: 'webpack-stats.json'}),        new webpack.ProvidePlugin({            $: "jquery",            jQuery: "jquery",            'window.jQuery': 'jquery'        })]}这是我在调用模板时遇到的错误:类型错误: $(...).my_extension不是函数任何想法,我可能做错了什么?
                    
                    
                1 回答
 
                    
                    
                            翻翻过去那场雪
                            
                                
                            
                        
                        
                                                
                    TA贡献2065条经验 获得超14个赞
在尝试了多年的不同方法之后,我发现注册有效,但当我在模板中使用它时,jQuery不是同一个实例。
解决我的问题的终于是将此行添加到我的.base.js
require('jquery');我不是100%确定,但我想暴露加载器正在识别此导入并为其创建全局范围。
也许这对其他人有帮助。
添加回答
举报
0/150
	提交
		取消
	