使用 es6/7 开发 chrome extension 的最佳实践? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
timqian
10.02D

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

  •  
  •   timqian 2016 年 2 月 25 日 4620 次点击
    这是一个创建于 3712 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用的工具:

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

    做一个功能跟 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
       2016 年 2 月 25 日
    @leojoy710
    @milklee good idea ,有空可以搞一搞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by olitude
    VERSION: 3.9.8.5 51ms UTC 22:43 PVG 06:43 LAX 15:43 JFK 18:43
    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