const path = require("path");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const Dotenv = require("dotenv-webpack");

module.exports = {
    entry: "./src/index.jsx",
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "index.js",
        //libraryTarget: "commonjs2"
    },
    devtool: "cheap-eval-source-map", // won't work on XD due to lack of eval
    externals: {
        uxp: "commonjs2 uxp",
        photoshop: "commonjs2 photoshop",
        os: "commonjs2 os",
    },
    resolve: {
        extensions: [".js", ".jsx"],
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loader: "babel-loader",
                options: {
                    plugins: [
                        "@babel/transform-react-jsx",
                        "@babel/proposal-object-rest-spread",
                        "@babel/plugin-syntax-class-properties",
                    ],
                },
            },
            {
                test: /\.png$/,
                exclude: /node_modules/,
                loader: "file-loader",
            },
            {
                test: /\.css$/,
                use: ["style-loader", "css-loader"],
            },
        ],
    },
    plugins: [
        //new CleanWebpackPlugin(),
        new CopyPlugin(["plugin"], {
            copyUnmodified: true,
        }),
        new Dotenv({
            path: "./.env", // Path to .env file (this is the default)
            systemvars: true,
        }),
    ],
};
