【问题标题】:JavaScript requiring librariesJavaScript 需要库
【发布时间】:2013-02-23 23:39:27
【问题描述】:

我对 JavaScript 世界很陌生(尤其是在库方面)。其中相当多的人告诉您使用require('libName') 作为将库集成到您的网页/应用程序的一种方式。有人可以向我解释它是如何工作的以及如何实现它吗?因为默认情况下 require() 不起作用。

【问题讨论】:

    标签: javascript require


    【解决方案1】:

    浏览器中的 JavaScript 没有 require 函数,此功能由外部库提供,遵循两个最流行的规范:CommonJSAMD。看看RequireJS,这两种模式都很适合。

    服务器端的 JavaScript (NodeJS),默认使用 CommonJS 规范。

    【讨论】:

    • RequireJS 和阿多尼斯问的 require('sdfs') 没什么共同点,其实名字很混乱,应该叫 AMDJS。 require('package') 是 commonJS 风格,可以在浏览器中使用 Webmake 或 Browserify 等工具轻松使用
    【解决方案2】:

    这是一个非常轻量级的需求:

    var require = function(src, success, failure){
        !function(source, success_cb, failure_cb){
                var script = document.createElement('script');
                script.async = true; script.type = 'text/javascript'; script.src = source;
                script.onload = success_cb || function(e){};
                script.onerror = failure_cb || function(e){};
                (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
        }(src, success, failure);
    }
    
    require('js/jquery.js', function(){
        console.log('jQuery is ready to use');
    }, function(){
        console.log("Something went wrong loading this script");
    });
    

    【讨论】:

      【解决方案3】:

      Require 是一个可以自己编写的手工函数,或者是一个库的一部分,您可以在页面上的任何其他 JS 之前加载它。

      例如,RequireJS 是一个只处理依赖加载(和命名空间,如果需要的话)的库。

      您可以非常简单地制作您自己的事件,方法是使用您以编程方式插入页面的脚本标记中的onload 事件(或onreadystatechange 用于旧版本的 IE),并有几个后备方案,具体取决于有多少您想支持的超旧浏览器。

      通过学习“Promises”的模式,您还可以在模块中间开始要求依赖项。

      同样,不同的库以不同的方式支持这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 1970-01-01
        • 2017-11-17
        • 2012-10-05
        相关资源
        最近更新 更多