Skip to content

Instantly share code, notes, and snippets.

@gasolin
Last active March 30, 2017 06:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gasolin/bd7285ef37c412c92d564cbe9ca0032f to your computer and use it in GitHub Desktop.
Save gasolin/bd7285ef37c412c92d564cbe9ca0032f to your computer and use it in GitHub Desktop.
WIP netmonitor webpack config
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const path = require("path");
const { isDevelopment } = require("devtools-config");
const { NormalModuleReplacementPlugin } = require("webpack");
const { toolboxConfig } = require("./node_modules/devtools-launchpad/index");
const { getConfig } = require("./bin/configure");
let webpackConfig = {
entry: {
netmonitor: [path.join(__dirname, "index.js")]
},
module: {
loaders: [
{
test: /\.(png|svg)$/,
loader: "file-loader?name=[name].[ext]",
},
]
},
output: {
path: path.join(__dirname, "assets/build"),
filename: "[name].js",
publicPath: "/assets/build",
libraryTarget: "umd",
},
// Fallback compatibility for npm link
resolve: {
fallback: path.join(__dirname, "node_modules"),
alias: {
"react": path.join(__dirname, "node_modules/react"),
"devtools/client/framework/menu": "devtools-sham-modules",
"devtools/client/framework/menu-item": "devtools-sham-modules",
"devtools/client/shared/components/reps/reps": "devtools-reps",
"devtools/client/shared/components/search-box": "devtools-sham-modules",
"devtools/client/shared/components/splitter/split-box": "devtools-modules",
"devtools/client/shared/components/tabs/tabbar": "devtools-sham-modules",
"devtools/client/shared/components/tabs/tabs": "devtools-sham-modules",
"devtools/client/shared/components/tree/tree-view": "devtools-modules",
"devtools/client/shared/components/tree/tree-row": "devtools-modules",
"devtools/client/shared/prefs": "devtools-sham-modules",
"devtools/client/shared/vendor/immutable": "immutable",
"devtools/client/shared/vendor/react": "react",
"devtools/client/shared/vendor/react-dom": "react-dom",
"devtools/client/shared/vendor/react-redux": "react-redux",
"devtools/client/shared/vendor/redux": "redux",
"devtools/client/shared/vendor/reselect": "reselect",
"devtools/client/shared/vendor/jszip": "jszip",
"devtools/client/shared/redux/middleware/thunk": "redux-thunk",
"devtools/client/locales": path.join(__dirname, "../locales/en-US"),
"devtools/client/shared/curl": "devtools-modules",
"devtools/client/shared/widgets/Chart": "devtools-sham-modules",
"devtools/shared/plural-form": "devtools-modules",
"Services": "devtools-modules",
"devtools/shared/l10n": "devtools-launchpad",
"devtools/client/shared/widgets/view-helpers": "devtools-sham-modules",
"devtools/client/shared/keycodes": "devtools-sham-modules",
"devtools/client/shared/widgets/tooltip/HTMLTooltip": "devtools-sham-modules",
"devtools/shared/platform/clipboard": "devtools-modules",
"devtools/client/shared/widgets/tooltip/ImageTooltipHelper": "devtools-sham-modules",
"devtools/client/framework/devtools": "devtools-sham-modules",
"devtools/client/shared/file-saver": "devtools-modules",
"devtools/shared/fronts/timeline": "devtools-sham-modules",
"devtools/shared/l10n": path.join(__dirname, "../shared/l10n"),
},
}
};
if (!isDevelopment()) {
webpackConfig.output.libraryTarget = "umd";
webpackConfig.plugins = [];
const mappings = [
[/\.\/mocha/, "./mochitest"],
[/\.\.\/utils\/mocha/, "../utils/mochitest"],
[/\.\/utils\/mocha/, "./utils/mochitest"],
];
mappings.forEach(([regex, res]) => {
webpackConfig.plugins.push(new NormalModuleReplacementPlugin(regex, res));
});
}
let config = toolboxConfig(webpackConfig, getConfig());
// Remove loaders from devtools-launchpad webpack config
config.module.loaders = config.module.loaders
.filter((loader) => !["svg-inline"].includes(loader.loader));
module.exports = config;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment