Grunt では、 envというプラグインを使用していました。これにより、特定のビルドで環境を定義できます。私は3つのビルドを持っていました。1 つは、個別に分割されたすべてのファイルを使用する DEV でした。PROD はすべてを連結し、RELEASE は連結して醜くします。私はGulpで同じことをしようとしています。Gulp のプリプロセッサはありますが、環境を定義するものは何もありません。
質問は。私に何ができる?明らかに、常にすべての JS ファイルを定義したくはありません。また、異なるスクリプト タグを持つ 3 つの異なる HTML ページも必要ありません。
私のHTMLには、次のようなものがあります。
<!-- @if NODE_ENV == 'DEVELOPMENT' -->
<script src="js/example1.js" type="text/javascript"></script>
<script src="js/example2.js" type="text/javascript"></script>
<script src="js/example3.js" type="text/javascript"></script>
<!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' -->
<script src="js/project.js" type="text/javascript"></script>
<!-- @endif -->
<!-- @if NODE_ENV == 'RELEASE' -->
<script src="js/project.min.js" type="text/javascript"></script>
<!-- @endif -->
そして、私のうなり声のプラグインは次のようになります。
env: {
dev: {
NODE_ENV: 'DEVELOPMENT'
},
prod: {
NODE_ENV: 'PRODUCTION'
},
release: {
NODE_ENV: 'RELEASE'
}
},
preprocess: {
options: {
context: {
name: '<%= pkg.outputName %>',
version: '<%= pkg.version %>',
port: '<%= pkg.port %>'
}
},
dev: {
src: 'index.html',
dest: '<%= pkg.outputFolder %>/index.html'
},
prod: {
src: 'index.html',
dest: '<%= pkg.outputFolder %>/index.html'
},
release: {
src: 'index.html',
dest: '<%= pkg.outputFolder %>/index.html'
}
},