Ich verwende Grunt, um ein React-Projekt zu erstellen, und ich möchte 'dev' und 'prod' Aromen haben. Als reaktive Dokumentation sagt:React und Grunt - Envify NODE_ENV = 'Produktion' und UglifyJS
Um Reagieren im Produktionsmodus zu verwenden, setzen Sie die Umgebungsvariable NODE_ENV auf Produktion. Ein Minifier, der die Eliminierung von toten Codes wie UglifyJS durchführt, wird empfohlen, um den im Entwicklungsmodus vorhandenen zusätzlichen Code vollständig zu entfernen.
Ich bin sehr neu mit Grunt, browserify und Sachen, aber lass uns sehen. Erstes Problem habe ich mit envify ist, verwende ich es als eine Transformation:
browserify: {
options: {
transform: ['reactify'],
extensions: ['.jsx']
},
dev:{
options: {
watch: true //Uses watchify (faster)
},
src: ['js/app.js'],
dest: 'js/bundle.js'
},
/**
* To use React in production mode, set the environment variable NODE_ENV to production.
* A minifier that performs dead-code elimination such as UglifyJS is
* recommended to completely remove the extra code present in development mode.
**/
prod: {
options: {
transform: ['envify'] //How to set up NOD_ENV='production' ?
},
src: ['js/app.js'],
dest: 'js/bundle.js'
}
},
Ok, grunzen tun: dev funktioniert gut. Also beim Ausführen von grunt: prod ... Wie kann ich NODE_ENV: 'production' einstellen? Ich meine, ich weiß, dass ich als eine Verwandlung "beneide", aber ... Keine Ahnung, wie ich das benutzen soll.
Danach habe ich auch eine uglify Aufgabe:
uglify: {
prod: {
files: {
'js/bundle.min.js': ['js/bundle.js']
}
}
}
So nach Grunzen Aufruf: prod, was es schafft, ist zwei Dateien (bundle.js und bundle-min.js). In der Produktion möchte ich nur bündel.min.js haben. Ich weiß, was ich tun kann:
js/bundle.js ‚: [‘ js/bundle.js']
Aber mmm Ich weiß nicht, ob es eine Möglichkeit ist, einfach zu umbenennen bundle.min Js, ich denke, so ... das Problem ist, dass in dem hTML-Code ich habe:
<script src="js/bundle.js"></script>
gibt es hier auch einen Trick, um es entweder bundle.js oder bundle.min.js akzeptiert?
Vielen Dank im Voraus.
Das ist großartig! Vielen Dank. Über den letzten Teil meiner Frage, irgendeinen Vorschlag? –
Ich hatte immer grunt-env verwendet (funktioniert super!), Hatte aber nicht an die Skripte in package.json gedacht. handlicher Tipp! – WickyNilliams
Haben Sie tatsächlich bestätigt, dass dies für React funktioniert? Ich glaube nicht, dass React Transformationen in 'package.json' enthält. Ich bin mir nicht sicher, dass das, was du beschreibst, genug ist, um React tatsächlich zu beneiden. –