Sto usando Grunt per creare un progetto React e voglio avere sapori "dev" e "prod". Come reagiscono i documenti:React and Grunt - Envify NODE_ENV = 'production' e UglifyJS
Per utilizzare React in modalità produzione, impostare la variabile di ambiente NODE_ENV sulla produzione. Un minificatore che esegue l'eliminazione di codice morto come UglifyJS è consigliato per rimuovere completamente il codice aggiuntivo presente nella modalità di sviluppo.
Sono molto nuovo utilizzando grunt, browserify e roba ma vediamo. Il primo problema che ho è con envify, lo uso come una trasformazione:
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, facendo grugnito: dev funziona bene. Quindi, quando si esegue grunt: prod ... Come posso impostare NODE_ENV: 'produzione'? Voglio dire, so che sto passando 'envify' come una trasformazione ma ... Non ho idea di come usarlo.
Dopo questo, ho anche un compito uglify:
uglify: {
prod: {
files: {
'js/bundle.min.js': ['js/bundle.js']
}
}
}
Così, dopo aver chiamato grugnito: prod, ciò che crea è due file (bundle.js e bundle-min.js). In produzione mi piacerebbe avere solo bundle.min.js. So che posso fare:
js/bundle.js ': [' js/bundle.js']
Ma mmm non so se c'è un modo per rinominare solo che bundle.min .js, credo di sì ... il problema è che nel codice HTML che ho:
<script src="js/bundle.js"></script>
c'è anche qui un trucco per rendere più accetta sia bundle.js o bundle.min.js?
Grazie in anticipo.
È grandioso! Grazie. Circa l'ultima parte della mia domanda, qualche suggerimento? –
Ho sempre usato grunt-env (funziona alla grande!), Ma non avevo pensato agli script nell'approccio package.json. consiglio utile! – WickyNilliams
Hai effettivamente confermato che questo funziona per React? Non credo che React contenga trasformazioni in 'package.json'. Non sono sicuro che quello che descrivi sia abbastanza per invidiare davvero React. –