UNPKG

antlr4-runtime

Version:

JavaScript runtime for ANTLR4

68 lines (60 loc) 1.71 kB
import path from 'path'; import ESLintPlugin from 'eslint-webpack-plugin'; import {fileURLToPath} from "url"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const buildConfig = ( platform, extensions ) => ({ mode: "production", entry: `./src/antlr4/index.${platform}.js`, output: { path: path.resolve(__dirname, 'dist'), filename: `antlr4.${platform}.${extensions}`, chunkFormat: extensions === "mjs" ? "module" : "commonjs", library: { type: extensions === "mjs" ? "module" : "commonjs" } }, ...(platform === 'web' && { module: { rules: [{ test: /\.js$/, exclude: [ /node_modules/, path.resolve(__dirname, "src/FileStream.js") ], use: [ 'babel-loader' ] }] }, performance: { maxAssetSize: 512000, maxEntrypointSize: 512000 }, resolve: { extensions: [ '.js'], fallback: { fs: false } }, }), ...(platform === 'node' && { module: { rules: [{ test: /\.js$/, exclude: /node_modules/, use: [ 'babel-loader' ] }] }, resolve: { extensions: [ '.js'], }, }), target: platform, plugins: [ new ESLintPlugin() ], devtool: "source-map", experiments: { outputModule: extensions === "mjs" }, }) export default [ buildConfig("node", "cjs"), buildConfig("node", "mjs"), buildConfig("web", "cjs"), buildConfig("web", "mjs"), ];