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

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

  •  
  •   timqian · 2016-02-25 15:18:23 +08:00 · 4138 次点击
    这是一个创建于 3196 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用的工具:

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

    做一个功能跟 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-02-25 16:39:35 +08:00
    @leojoy710
    @milklee good idea ,有空可以搞一搞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.