首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >客户端上的JavaScript require()

客户端上的JavaScript require()
EN

Stack Overflow用户
提问于 2011-03-02 21:59:25
回答 14查看 144K关注 0票数 84

可以在客户端使用require() (或类似的东西)吗?

示例

代码语言:javascript
复制
var myClass = require('./js/myclass.js');
EN

回答 14

Stack Overflow用户

发布于 2011-03-02 22:01:44

您应该在require.jshead.js中查找这一点。

票数 41
EN

Stack Overflow用户

发布于 2011-08-05 22:19:52

我一直在用browserify做这件事。它还允许我将Node.js模块集成到客户端代码中。

我在这里写了博客:Add node.js/CommonJS style require() to client-side JavaScript with browserify

票数 25
EN

Stack Overflow用户

发布于 2011-12-16 23:32:51

如果你想拥有Node.js风格的require,你可以使用如下代码:

代码语言:javascript
复制
var require = (function () {
    var cache = {};
    function loadScript(url) {
        var xhr = new XMLHttpRequest(),
            fnBody;
        xhr.open('get', url, false);
        xhr.send();
        if (xhr.status === 200 && xhr.getResponseHeader('Content-Type') === 'application/x-javascript') {
            fnBody = 'var exports = {};\n' + xhr.responseText + '\nreturn exports;';
            cache[url] = (new Function(fnBody)).call({});
        }
    }
    function resolve(module) {
        //TODO resolve urls
        return module;
    }
    function require(module) {
        var url = resolve(module);
        if (!Object.prototype.hasOwnProperty.call(cache, url)) {
            loadScript(url);
        }
        return cache[url];
    }
    require.cache = cache;
    require.resolve = resolve;
    return require;
}());

注意:这段代码可以工作,但并不完整(特别是url解析),并且没有实现所有的Node.js特性(我昨晚才把它放在一起)。你不应该在真实的应用程序中使用这个代码,但是它给了你一个起点。我用这个简单的模块对它进行了测试,它可以工作:

代码语言:javascript
复制
function hello() {
    console.log('Hello world!');
}

exports.hello = hello;
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5168451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档