【问题标题】:Webpack / jquery.ns-autogrow Uncaught TypeError: Cannot read property 'fn' of undefinedWebpack / jquery.ns-autogrow Uncaught TypeError: Cannot read property 'fn' of undefined
【发布时间】:2016-12-30 12:16:32
【问题描述】:

你在那儿

总的来说,我是 Webpack 或 JS-bundel 的新手。所以这个问题可能听起来很愚蠢。如果是这样,我很抱歉..

我正在使用 webpack 来打包所有的 JS 文件。到目前为止,我有这个即时消息main.js

var jQuery  = require('jquery');
var autogrow = require('jquery.ns-autogrow');

(function($){

    $(function(){
        $('textarea').autogrow();
    });

})(jQuery);

但现在我在 ns-autogrow 插件/模块的开头得到了Uncaught TypeError: Cannot read property 'fn' of undefined

(function($, window) {
    return $.fn.autogrow = function(options) { ...

需要依赖项是不是我做错了什么?

【问题讨论】:

    标签: javascript jquery webpack autogrow


    【解决方案1】:

    您必须在应用程序的全局范围内包含 jquery 依赖项才能以这种方式使用它:

    (function($){
    
        $(function(){
            $('textarea').autogrow();
        });
    
    })(jQuery);
    

    要做到这一点,你应该使用类似的东西:

    externals: {
        // require("jquery") is external and available
        //  on the global var jQuery
        "jquery": "jQuery"
    }
    

    你可以在address看到更多细节

    希望对你有帮助

    【讨论】:

    • 谢谢!我将,externals: { "jquery": "jQuery" } 添加到我的webpack gulp 任务中,并从我的main.js 中删除了var jQuery = require('jquery');。但现在它甚至不再包含 jQuery 了。有什么想法吗?
    • 现在似乎有点清楚了。如果我把它放在“外部”中,webpack 认为 jQuery 将包含在 webpack 包之外,对吧?但是,如果我也想将 jQuery 包含到包中怎么办?
    • 你仍然可以使用 var jQuery = require('jquery'); 也可以在你的 webpack conf 的 externals 中添加这个语句:"$" : "jQuery" 以允许使用 $ 别名。
    • 这个 $ 别名将允许外部库或包使用这个符号来运行类似(function($, window) { return $.fn.autogrow = function(options) { ...
    • 对不起。没有运气。一旦我将'jquery': 'jQuery' 添加到外部,jQuery 就不再包含在包中。相反,我找到module.exports = jQuery;
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 2013-01-15
    • 2019-02-12
    • 2021-09-20
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多