Angular esbuild中的自定义webpack配置

57hvy0tb  于 5个月前  发布在  Webpack
关注(0)|答案(1)|浏览(97)

目前,我的Angular项目使用自定义Webpack配置文件。

"builder": "@angular-builders/custom-webpack:browser",
          "options": {
            "allowedCommonJsDependencies": [
                ...
            ],
            "customWebpackConfig": {
              "path": "./angular-webpack.config.js",
              "mergeRules": {
                "module": {
                  "rules": "prepend"
                }
              }
            },

字符串
在我的自定义配置中,我使用了mt build中的一些自定义环境变量。
但是我想转到esbuild,但是问题是我找不到任何好的/明显的方法来为Angular定制esbuild配置。

let DefinePlugin = require('webpack/lib/DefinePlugin');
let OS = require('os');

module.exports = {
    plugins: [
        new DefinePlugin({
            VERSION: JSON.stringify(process.env.VERSION || OS.hostname()),
            URL: JSON.stringify(process.env.URL || ''),
        }),
    ],
}


对于我应该如何为Angular esbuild实现自定义环境变量的任何帮助或提示都是非常感激的。
谢谢

j8ag8udp

j8ag8udp1#

这是供您使用的示例代码
您可以像这样创建build.js文件

const esbuild = require('esbuild');
    
    esbuild
      .build({
        entryPoints: [''], // you need to define you entry point file. For example index.ts
        outdir: './public/js',
        bundle: true,
        minify: true,
        sourcemap: true,
        format: 'esm',
        tsconfig: './tsconfig.json',
        define: {
          'process.env.VERSION': '"1.0.0"',
          'process.env.URL': '"http://google.com"'
        }
      })
      .then(() => console.log('Done'))
      .catch(() => {
        process.exit(1);
      });

字符串
然后就可以在代码中调用env var了

const url   = process.env.URL;
const version = process.env.VERSION;

相关问题