UNPKG

panjareh

Version:

Panjareh using aparat and phoenix-video-player to play videos on desktops and tvs.

126 lines (114 loc) 3.02 kB
const webpack = require("webpack"); const { merge } = require("webpack-merge"); const common = require("./webpack.common.js"); const Dotenv = require("dotenv-webpack"); const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin"); const paths = require("./paths"); const deps = require("../package.json").dependencies; const appDev = merge(common, { // Set the mode to development or production mode: "development", target: ["web", "es5"], // Control how source maps are generated devtool: "inline-source-map", output: { path: paths.build, // publicPath: "/", publicPath: "http://localhost:8004/", filename: "[name].bundle.js", }, // Spin up a server for quick development devServer: { historyApiFallback: true, compress: false, port: process.env.PORT || 8004, open: true, }, module: { rules: [ // Styles: Inject CSS into the head with source maps { test: /\.(scss|css)$/, use: [ "style-loader", { loader: "css-loader", options: { sourceMap: true, importLoaders: 1 }, }, ], }, ], }, plugins: [ new ModuleFederationPlugin({ name: "app_player", filename: "remoteEntry.js", remotes: {}, exposes: { player: "./src/components/remotePlayer.js", }, shared: { // ...deps, // react: { // singleton: true, // requiredVersion: deps.react, // }, // "react-dom": { // singleton: true, // requiredVersion: deps["react-dom"], // }, }, }), // Only update what has changed on hot reload new webpack.HotModuleReplacementPlugin(), new Dotenv({ path: `./.env.development`, }), ], }); const appModule = merge(common, { entry: [paths.src + "/components/remotePlayer.js"], output: { path: paths.modules, publicPath: "http://localhost:8004/", filename: "js/[name].[contenthash].js", }, plugins: [ new ModuleFederationPlugin({ name: "app_player", filename: "remoteEntry.js", remotes: {}, exposes: { player: "./src/components/remotePlayer.js", }, shared: { // ...deps, // react: { // singleton: true, // requiredVersion: deps.react, // }, // "react-dom": { // singleton: true, // requiredVersion: deps["react-dom"], // }, }, }), ], module: { rules: [ // JavaScript: Use Babel to transpile JavaScript files { test: /\.(js|jsx)$/, exclude: /node_modules/, use: ["babel-loader"], }, // Images: Copy image files to build folder { test: /\.(?:ico|gif|png|jpg|jpeg)$/i, type: "asset/resource" }, // Fonts and SVGs: Inline files { test: /\.(woff(2)?|eot|ttf|otf|svg|)$/, type: "asset/inline" }, ], }, }) module.exports = (env, argv) => { return [appDev] }