不支持 require 的浏览器上要使用这个方法,有什么办法吗 - V2EX
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 11472 次点击
    这是一个创建于 3160 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近偶然发现 IE11 都不支持这个 require 方法,去找 Pollyfills 也没找到解决方案,难道我的使用方式不对,如何解决这个问题?
    13 条回复    2017-05-05 13:36:09 +08:00
    Jason2393
        1
    Jason2393  
       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  
      &nbp;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     Solana     2458 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 05:22 PVG 13:22 LAX 21:22 JFK 00:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86