V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
abcbuzhiming
V2EX  ›  JavaScript

不支持 require 的浏览器上要使用这个方法,有什么办法吗

  •  
  •   abcbuzhiming · 2017-05-04 10:09:44 +08:00 · 10974 次点击
    这是一个创建于 2548 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近偶然发现 IE11 都不支持这个 require 方法,去找 Pollyfills 也没找到解决方案,难道我的使用方式不对,如何解决这个问题?
    13 条回复    2017-05-05 13:36:09 +08:00
    JasonSi
        1
    JasonSi  
       2017-05-04 10:13:29 +08:00
    模块引入吗?。。
    babel webpack browserfy ?
    learnshare
        2
    learnshare  
       2017-05-04 10:14:29 +08:00
    require 是 node 环境下用的吧
    dibage
        3
    dibage  
       2017-05-04 10:25:20 +08:00
    你需要 requirejs
    IORI20091101
        4
    IORI20091101  
       2017-05-04 10:32:38 +08:00
    webpack or browserify 正解
    gdtv
        5
    gdtv  
       2017-05-04 10:51:55 +08:00
    参考当年推广 firefox 的方法:
    在页头挂个醒目的横幅广告:你还在用老掉牙的 IE11 吗?赶紧升级到先进的 chrome 浏览器!
    otakustay
        6
    otakustay  
       2017-05-04 12:16:53 +08:00
    没有任何浏览器支持 require 所以你找 polyfill 当然是没有结果的,不存在的东西怎么 fill
    你要找 amd loader
    secends
        7
    secends  
       2017-05-04 12:27:43 +08:00
    (greasemonkey || tampermonkey) => @require
    noe132
        8
    noe132  
       2017-05-04 13:21:16 +08:00
    require 是 node 上的东西~

    用 webpack 或者 browserify.

    或者类似的用 AMD
    lijsh
        9
    lijsh  
       2017-05-04 14:09:29 +08:00
    require 是 node 上的模块引入格式,前端没法直接用,你可以自己写一个 require 函数,或者使用 require.js、sea.js 这种前端模块加载库;现在的主流方案是用构建工具,webpack、rollup 和 browserify 都可以。
    BearD01001
        10
    BearD01001  
       2017-05-04 14:32:02 +08:00   ❤️ 3
    浏览器端的模块系统无法使用,不只是 require,即使 es6 标准中的 import 也无法支持。

    原因在于目前模块之间依赖树的处理方法上还有一个明显的难题没有解决:
    因为只有在浏览器完全下载完一个 js 文件,并且宿主引擎解析到 require 或 import 这些关键字的时候,才知道还有依赖需要下载并解析。然而该文件依赖的这个模块可能还依赖于其他模块,理论上依赖树可以有无限长,目前这种依赖的同步加载方式无疑会带来严重的进程阻塞和极高的网络开销。

    目前并没有很好的解决方案使浏览器端自然地使用各个模块系统,只能使用 webpack 等工具预先将所有依赖打包,最终在浏览器环境中运行。
    Tunar
        11
    Tunar  
       2017-05-04 14:56:28 +08:00 via Android
    blackywkl
        12
    blackywkl  
       2017-05-04 20:16:56 +08:00
    如果你不需要打包什么的,只需要模块化以及异步加载的话,推荐 requirejs
    wangjie
        13
    wangjie  
       2017-05-05 13:36:09 +08:00
    @gdtv 推广 ff 广告写 chrome 笑 cry
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5966 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:15 · PVG 10:15 · LAX 19:15 · JFK 22:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.