WebExtension和Webpack

时间:2018-08-02 12:23:34

标签: javascript webpack firefox-webextensions

我正在创建扩展程序,我使用的是webpack。打开弹出扩展名时,我需要在活动页面上运行脚本。

chrome.windows.getCurrent(function (currentWindow) {
  chrome.tabs.query({ active: true, windowId: currentWindow.id },
    function (activeTabs) {
      chrome.tabs.executeScript(
        activeTabs[0].id, { file: 'js/content.js', allFrames: true });
    });
});

这有效,但是如何在连接后立即从content.js调用方法?

content.js:

import Port from './content/port.js'
...

export default {
    init(){
        console.log('content.js init')
    }
}

webpack.config.js:

const content_config = {
  context: __dirname + "/src",
  entry: "./js/content.js",
  output: {
    path: __dirname + "/dist",
    filename: "js/content.js",
    libraryTarget: "var",
    library: "Content"
  },
  resolve: {
    extensions: [".js"]
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: "babel-loader",
        exclude: /node_modules/
      }
    ]
  }
};

我怎么称呼Content.default.init()?

UPD: 解决方案选项:

start-app.js:
import Content from './content.js'
Content.init()

并将webpack.config.js中的内容替换为StartApp和chrome.tabs.executeScript中的内容。

0 个答案:

没有答案