typescript 2.4.0
DefinePlugin
を使用してグローバル変数/環境変数を作成しようとしています。webpack
を使用しています。だからここに私が取るしようとしているアプローチです:グローバル変数はwebpackからのtypescriptで定義されていません
webpack.jsはコンソールで、一部
new webpack.DefinePlugin({
environment: JSON.stringify('DEVELOPMENT'),
}),
globals.ts
declare const environment: String;
console.log(environment);
export { environment };
console.log(environment);
environmentService.ts
import { IEnvironment } from 'environment';
import { environment } from '../globals';
console.log(environment);
export default class EnvironmentService implements IEnvironment {
environmentName: String = environment;
get isDevelopment(): boolean {
return this.environmentName === 'DEVELOPMENT';
}
get isProduction(): boolean {
return this.environmentName === 'PRODUCTION';
}
}
を定義しますログ取得:
DEVELOPMENT
DEVELOPMENT
undefined
だからenvironmentService.ts
がundefined
になると私はと私には分かりません。
exports
変数だけで値は表示されません。
誰かが私が間違ってやっていることを説明することができ、なぜそれが得られるのかundefined
私はそれを感謝します。
編集1
私はDefinePlugin
が何をしているか見ると思います。 environment
をDEVELOPMENT
に設定せず、代わりにconsole.log(environment);
をconsole.log('DEVELOPMENT');
に置き換え、exports
environment
を未定義に設定します。
を動作するはずどこ 'environment'または' environmentName'が定義されますでしょうか? – evolutionxbox
global.tsにDefinePluginが値を置き換えています。 –
値はどこに置き換えられますか?あなたは 'DefinePlugin'を' IEnvironment'としてインポートしていますが、私の考えが間違っていない限り、それを使うことはありません。 – evolutionxbox