使用 es6/7 开发 chrome extension 的最佳实践? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
timqian
10.02D

使用 es6/7 开发 chrome extension 的最佳实践?

  •  
  •   timqian Feb 25, 2016 4622 views
    This topic created in 3714 days ago, the information mentioned may be changed or developed.

    使用的工具:

    例子: https://github.com/ProjecToday/es6-chrome-extension-starter

    npm scripts inside:

    "scripts": {
    "start": "webpack -d --watch", // continuous incremental build in development with include source maps
    "build": "webpack -p" // building once for production
    }

    唯一的缺憾在于不能 auto reload 。不知道有没有人有办法?

    16 replies    2016-02-25 16:39:35 +08:00
    sox
        1
    sox  
       Feb 25, 2016
    没办法吧,插件需要重新加载
    leojoy710
        2
    leojoy710  
       Feb 25, 2016
    好像有可以 reload extension 的 extension...
    milklee
        3
    milklee  
       Feb 25, 2016
    我开发[划词翻译]( https://github.com/lmk123/crx-selection-translate)的时候也在找 auto reload 的方法,但是没找到。
    milklee
        4
    milklee      Feb 25, 2016
    评论不支持 MD 的。。 地址是 https://github.com/lmk123/crx-selection-translate
    djyde
        5
    djyde  
       Feb 25, 2016
    @sox 可以尝试 reload 插件列表的 tab
    timqian
        6
    timqian  
    OP
       Feb 25, 2016
    @leojoy710 [Extensions Reloader]( https://chrome.google.com/webstore/detail/extensions-reloader/fimgfedafeadlieiabdeeaodndnlbhid)就是用来 reload extension 的 extension ,但每次都要点一下,还是有一点麻烦
    timqian
        7
    timqian  
    OP
       Feb 25, 2016
    @leojoy710 [Extensions Reloader]( https://chrome.google.com/webstore/detail/extensions-reloader/fimgfedafeadlieiabdeeaodndnlbhid) 就是用来 reload extension 的 extension ,但每次都要点一下,还是有一点麻烦
    jsonline
        8
    jsonline  
       Feb 25, 2016 via Android
    没有 wather 连代码都写不了,前端已经到了这种程度了吗
    milklee
        9
    milklee  
       Feb 25, 2016
    @jsonline 只是为了写代码写的更舒服而已
    timqian
        10
    timqian  
    OP
       Feb 25, 2016
    @jsonline wather 是指 webpack 吗?不是写不了,是为了写的爽
    leojoy710
        11
    leojoy710  
       Feb 25, 2016
    @timqian 看下他怎么做的拿来就好了...
    timqian
        12
    timqian  
    OP
       Feb 25, 2016
    @leojoy710 啥?
    jsonline
        13
    jsonline  
       Feb 25, 2016 via Android
    我在么觉得没有 loader 没有 watcher 更爽
    leojoy710
        14
    leojoy710  
       Feb 25, 2016
    @timqian 看一下 Extensions Reloader 是怎么做的, 拿来弄成自动的...
    milklee
        15
    milklee  
       Feb 25, 2016
    其实办法是有的。

    做一个功能跟 Extensions Reloader 一样的扩展 A ,但是它需要支持 外部消息通信( https://developer.chrome.com/extensions/messaging#external-webpage ),在每次 Webpack 构建完成时通知一下扩展 A 把 tab 和正在开发的扩展 B 都刷新一遍。

    至于怎么让 Webpack 通知到扩展 A ,我的想法是本地有一个 web page 专门用来发送消息到扩展 A ,每次刷新一遍这个 web page ,扩展 A 就会把所有的 tab 和扩展 B reload 一遍。

    那么总结来说,只需要在 Webpack 每次构建完成的时候用 Node.js 打开这个 web page ,就会让所有 tab 和扩展 B 刷新一遍了。
    timqian
        16
    timqian  
    OP
       Feb 25, 2016
    @leojoy710
    @milklee good idea ,有空可以搞一搞
    About     Help     Advertise     Blog     API     FAQ     Solana     1406 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 17:10 PVG 01:10 LAX 10:10 JFK 13:10
    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