【问题标题】:JavaScript: how to include a file in a way that will work either on node.js and on the browser?JavaScript:如何以适用于 node.js 和浏览器的方式包含文件?
【发布时间】:2012-11-15 23:53:42
【问题描述】:

我正在编写一个可以在浏览器和 node.js 上使用的文件。要使用库,我可以在节点上使用_ = require('underscore.js'); main(); 导入它,在浏览器上使用$.getScript('underscore.js',function(){ main(); });。包含适用于两种环境的文件的正确方法是什么?

【问题讨论】:

    标签: javascript node.js import


    【解决方案1】:

    您可以使用 AMD 兼容的模块加载器,例如 RequireJS。

    http://requirejs.org/

    【讨论】:

    • 您能否详细说明您如何使用 RequireJS 来获得适用于两种环境的相同包含代码?
    • @Dokkat 都在 require.js 文档中。查看网站以获取使用示例等。
    【解决方案2】:

    试试object detection:

    if($ && $.getScript){
        $.getScript('underscore.js',function(){ main(); });
    }else if(require){
        _ = require('underscore.js');
    }else{
        /* output: Could not load library 'underscore.js'. */
    }
    

    这样做的一个危险是require 可能被定义但意味着别的东西。

    【讨论】:

    • 这就是我正在做的,但我认为它有点不雅。
    • dqhendricks 的建议可能更好,我在发布此内容时看到了它。 (:
    • 我讨厌 require.js 的文档,通过。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2011-09-21
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多