如何在 Typescript 中为 webpack.config.ts 制作开关盒?

Lok*_*kio 2 javascript typescript webpack-2

我在打字稿和 webpack 2 配置文件的语法方面遇到问题:

javascript 等效项是:

switch (process.env.BUILD_ENV) {
    case 'live':
        module.exports = require('./config/webpack.live');
        break;
    case 'debug':
        module.exports = require('./config/webpack.debug');
        break;
    default:
        module.exports = require('./config/webpack.doesntexist');
}
Run Code Online (Sandbox Code Playgroud)

Webpack 2 需要一个 TS 配置文件,所以我尝试将这部分更改为:

switch (process.env.BUILD_ENV) {
case 'live':
    export * from './config/webpack.live';
    break;
case 'debug':
    export * from './config/webpack.debug';
    break;
default:
    export * from './config/webpack.doesntexist';
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:“导出声明只能在模块中使用”。但我不清楚这意味着什么。我怎样才能在打字稿中纠正这个问题?或者这不是在 webpack 2 中构建配置的方式?

mle*_*eko 5

Typescript 仅支持顶级导入​​/导出。

尝试

import * as liveConfig from "./config/webpack.live";
import * as debugConfig from "./config/webpack.debug";
import * as defaultConfig from "./config/webpack.doesntexist";

let config;

switch (process.env.BUILD_ENV) {
    case 'live':
        config = liveConfig;
        break;
    case 'debug':
        config = debugConfig;
        break;
    default:
        config = defaultConfig;
}

export = config;
Run Code Online (Sandbox Code Playgroud)