123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- const path = require("path");
- const webpack = require("webpack");
- 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",
- },
- // TODO: switch to eval-source-map for faster builds. Requires CSP changes
- devtool: env.development ? "inline-source-map" : false,
- plugins: [new webpack.optimize.ModuleConcatenationPlugin()],
- module: {
- rules: [
- {
- test: /\.jsx?$/,
- exclude: /node_modules\/(?!(fluent|fluent-react)\/).*/,
- loader: "babel-loader",
- options: {
- presets: ["@babel/preset-react"],
- plugins: [
- ["@babel/plugin-proposal-async-generator-functions"],
- ],
- },
- },
- {
- test: /\.jsm$/,
- exclude: /node_modules/,
- loader: "babel-loader",
- // Converts .jsm files into common-js modules
- options: {plugins: [["jsm-to-esmodules", {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",
- ".",
- ],
- },
- externals: {
- "prop-types": "PropTypes",
- "react": "React",
- "react-dom": "ReactDOM",
- "react-intl": "ReactIntl",
- "redux": "Redux",
- "react-redux": "ReactRedux",
- },
- });
|