From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../newtab/webpack.system-addon.config.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 browser/components/newtab/webpack.system-addon.config.js (limited to 'browser/components/newtab/webpack.system-addon.config.js') 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..6cbe9e60cc --- /dev/null +++ b/browser/components/newtab/webpack.system-addon.config.js @@ -0,0 +1,80 @@ +/* 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); + +const resourcePathRegEx = /^resource:\/\/activity-stream\//; + +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, in a similar way to what babel-jsm-to-commonjs + // does for jsm files. + new ResourceUriPlugin({ resourcePathRegEx }), + 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"], + plugins: ["@babel/plugin-proposal-optional-chaining"], + }, + }, + { + test: /\.jsm$/, + exclude: /node_modules/, + loader: "babel-loader", + // Converts .jsm files into common-js modules + options: { + plugins: [ + [ + "./tools/babel-jsm-to-commonjs.js", + { + basePath: resourcePathRegEx, + removeOtherImports: true, + replace: true, + }, + ], + ], + }, + }, + ], + }, + // This resolve config allows us to import with paths relative to the root directory, e.g. "lib/ActivityStream.jsm" + 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", + }, +}); -- cgit v1.2.3