/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const path = require("path"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const distPath = path.resolve(__dirname, "dist"); const node_env = process.env.NODE_ENV ? process.env.NODE_ENV : 'production'; const config = { mode: node_env, entry: "./src/index.js", output: { library: "LineageHelper", libraryTarget: "umd", path: distPath, filename: "index.js" }, plugins: [new MiniCssExtractPlugin({ filename: "styles.css" })], externals: { //don't bundle the 'react' npm package with our bundle.js //but get it from a global 'React' variable d3: "d3", "dagre-d3": "dagreD3", platform: "platform", dagre: "dagre", graphlib: "graphlib" }, module: { rules: [ { test: /\.m?js$/, exclude: /(node_modules|bower_components)/, use: { loader: "babel-loader", options: { presets: ["@babel/preset-env"], plugins: ["transform-class-properties"] } } }, { test: /\.s[ac]ss$/i, use: [ MiniCssExtractPlugin.loader, // Translates CSS into CommonJS "css-loader", // Compiles Sass to CSS "sass-loader" ] } ] } }; if (process.env.NODE_ENV === "development") { config.devtool = "inline-source-map"; } module.exports = config;