Я разрабатываю аддон / расширение 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