WebPack + WebExtensions / Chrome Extension - getBackground () не работает - PullRequest
0 голосов
/ 29 мая 2019

Я разрабатываю аддон / расширение Firefox / Chrome с той же кодовой базой, используя WebExtensions API и web-extensions-browser polyfill (через webpack и RequireJS).

Я заметил Firefox требует, чтобы код был необъяснимым и не унифицированным при отправке версии , и поэтому пришлось установить unminify-webpack-plugin здесь .

Последняя проблема, с которой я сталкиваюсь, состоит в том, что, поскольку webpack включает все необходимые файлы в один файл (как это обычно бывает), функциональность browser.extension.getBackground() здесь не работает, так каквсе мои функции в моем background.js добавлены в функцию анонимного модуля.

Любые предложения о том, как мне решить эту проблему?

Редактировать 1: Вот еще немного понимания

Моя структура папок выглядит следующим образом:

plugin/
├── wepback.config.js
├── manifest.json
├── package.json
├── package-lock.json
├── node_modules/
├── *dist/
├── img/
│   ├── icon.png
│   ├── ... etc
├── src/
│   ├── background/
│   │   ├── background.js
│   │   └── background.html
│   └── popup/
│       ├── popup.js
│       └── popup.html

Где моя конфигурация выглядит следующим образом:

const path = require('path');
const CopyPlugin = require('copy-webpack-plugin');
var UnminifiedWebpackPlugin = require('unminified-webpack-plugin');

module.exports = {
  entry: {
    background: './src/background/background.js',
    popup: './src/popup/popup.js'
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name]/[name].min.js"
  },
  plugins: [
    new CopyPlugin([
      { from: './src/background/background.html', to: 'background/background.html'},
      { from: './src/popup/popup.html', to: 'popup/popup.html'},
      { from: './src/popup/popup.css', to: 'popup/popup.css'},
      { from: './manifest.json', to: 'manifest.json'},
      { from: './img', to: 'img/[name].[ext]'},
    ]),
    new UnminifiedWebpackPlugin()
  ],
};

Редактировать 2:

Нашел следующую котельную плиту, которая выглядит многообещающе.Это похоже на проблему, которую после решения можно просто использовать повторно, поэтому я скоро опробую ее, переверну свой проект и протестирую.

https://github.com/fstanis/webextensions-webpack-boilerplate

...