运行构建命令时,Nestjs不使用webpack配置文件

cfh9epnr  于 2022-11-13  发布在  Webpack
关注(0)|答案(1)|浏览(278)

我有一个Node js代码,我尝试使用nestjs和webpack一起构建。我尝试使用webpack.DefinePlugin注入全局变量,但在构建结果中,我可以看到变量没有被替换。
nest-cli.json档案:

{
    "$schema": "https://json.schemastore.org/nest-cli",
    "collection": "@nestjs/schematics",
    "sourceRoot": "src",
    "compilerOptions": {
        "webpack": true,
        "webpackConfigPath": "./webpack.config.ts"
    }
}

webpack.config.ts文件:

import webpack from 'webpack';
import WebpackShellPluginNext from 'webpack-shell-plugin-next';
import isCI from 'is-ci';

const isDev = process.env.NODE_ENV === 'development' && !isCI;
const cliApiDomain = isDev ? 'localhost' : 'xxx.xxx';
const cliApiUrl = isDev ? 'http://localhost:5000' : 'https://www.xxx.xxx';
const dashboardUrl = isDev ? 'http://localhost:8080' : 'https://xxx.xxxx';

const configuration = (options: webpack.Configuration): webpack.Configuration => ({
    ...options,
    plugins: [
        ...options.plugins!,
        new WebpackShellPluginNext({
            onBuildStart: {
                scripts: ['rimraf dist'],
                blocking: true,
            },
            safe: true,
        }),
        new webpack.DefinePlugin({
            __CLI_API_DOMAIN__: `'${cliApiDomain}'`,
            __CLI_API_URL__: `'${cliApiUrl}'`,
            __DASHBOARD_URL__: `'${dashboardUrl}'`,
        }),
    ],
});

export default configuration;

我有package.json脚本,可在开发模式和生产模式下运行:

.
.
.
        "build": "nest build",
        "build:dev": "cross-env NODE_ENV=development nest build",
.
.
.

我在源代码中使用配置的变量:

private config: IConfig = {
        API_URL: __CLI_API_URL__,
        DASHBOARD_URL: __DASHBOARD_URL__,
    };

但是,这些变量并没有被webpack替换,当我检查我的构建代码时,我可以看到那些变量仍然在我的代码中。
我希望看到他们被替换。看起来Nestjs甚至没有使用我的文件
webpack.config.ts文件切换为使用相同的逻辑但带有js:webpack.config.js成功了。Nestjs不支持TS配置文件?
问题是. NestJS忽略用TypeScript编写的Webpack文件。

ryevplcw

ryevplcw1#

我通过将webpack配置文件替换为JavaScript One解决了此问题,因为NestJS不支持使用TypeScript编写的配置文件。

相关问题