summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/webpack.system-addon.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/newtab/webpack.system-addon.config.js')
-rw-r--r--browser/components/newtab/webpack.system-addon.config.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/browser/components/newtab/webpack.system-addon.config.js b/browser/components/newtab/webpack.system-addon.config.js
new file mode 100644
index 0000000000..8f54186ab4
--- /dev/null
+++ b/browser/components/newtab/webpack.system-addon.config.js
@@ -0,0 +1,65 @@
+/* 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/. */
+
+const path = require("path");
+const webpack = require("webpack");
+const { ResourceUriPlugin } = require("./tools/resourceUriPlugin");
+
+const absolute = relPath => path.join(__dirname, relPath);
+
+module.exports = (env = {}) => ({
+ mode: "none",
+ entry: absolute("content-src/activity-stream.jsx"),
+ output: {
+ path: absolute("data/content"),
+ filename: "activity-stream.bundle.js",
+ library: "NewtabRenderUtils",
+ },
+ // TODO: switch to eval-source-map for faster builds. Requires CSP changes
+ devtool: env.development ? "inline-source-map" : false,
+ plugins: [
+ // The ResourceUriPlugin handles translating resource URIs in import
+ // statements in .mjs files to paths on the filesystem.
+ new ResourceUriPlugin({
+ resourcePathRegExes: [
+ [
+ new RegExp("^resource://activity-stream/"),
+ path.join(__dirname, "./"),
+ ],
+ ],
+ }),
+ new webpack.BannerPlugin(
+ `THIS FILE IS AUTO-GENERATED: ${path.basename(__filename)}`
+ ),
+ new webpack.optimize.ModuleConcatenationPlugin(),
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.jsx?$/,
+ exclude: /node_modules\/(?!@fluent\/).*/,
+ loader: "babel-loader",
+ options: {
+ presets: ["@babel/preset-react"],
+ },
+ },
+ ],
+ },
+ // This resolve config allows us to import with paths relative to the root directory, e.g. "lib/ActivityStream.sys.mjs"
+ resolve: {
+ extensions: [".js", ".jsx"],
+ modules: ["node_modules", "."],
+ fallback: {
+ stream: require.resolve("stream-browserify"),
+ },
+ },
+ externals: {
+ "prop-types": "PropTypes",
+ react: "React",
+ "react-dom": "ReactDOM",
+ redux: "Redux",
+ "react-redux": "ReactRedux",
+ "react-transition-group": "ReactTransitionGroup",
+ },
+});