node.js - sourcemap - uglifyjs es6
¿Cómo minimizar múltiples archivos Javascript en una carpeta con UglifyJS? (6)
Además de la respuesta anterior, ahora tengo esta configuración en mi archivo .bashrc:
alias minify=''rm *.min.js; for f in *.js; do short=${f%.js}; uglifyjs $f > $short.min.js; done''
Hola, estoy usando uglifyJs para minimizar mis archivos javascript, está funcionando bien con un archivo a la vez, lo que estoy buscando es minimizar todos los archivos javascript presentes en una carpeta llamada JS en una carpeta llamada JSM, para ser claro Tengo 2 archivos dentro de mi carpeta JS llamados test1.js y test2.js y quiero ejecutar uglify en esa carpeta y generar test1.min.js y test2.min.js dentro de la carpeta JSM, entonces ¿hay alguna manera de hacerlo? ¿esta? un comando como:
uglifyjs -c -m JS/*.js JSM/*.min.js
O cualquier idea que pueda ayudarme.
Gracias.
Puede usar esta configuración en gruntfile.js:
uglify: {
all: {
files: [{
expand: true,
cwd: ''<path to js folder>'',
src: [''**/*.js'', ''!*.min.js''],
dest: ''<path to js folder>'',
ext: ''.js''
}]
}
}
Sé que podría parecer un gran paso, pero realmente recomendaría usar grunt . Es realmente simple una vez que lo dominas.
Aquí hay un curso intensivo:
- Instalar NodeJS
Instalar Grunt CLI (solo ingrese esto en la consola / terminal):
npm install -g grunt-cli
Cree un archivo simple
package.json
en la raíz de su proyecto:{ "name": "my-project-name", "version": "1.0.0", "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-uglify": "~0.2.4", "grunt-contrib-watch" : "~0.5.3" } }
Una vez que tenga eso, simplemente escriba:
npm install
en la consola (en la raíz de su proyecto). Esto instalará los plugins / dependencias de grunt necesarios (del archivo de paquete anterior).Ahora crea un simple
gruntfile.js
en la raíz de tu proyecto (es un tipo de configuración para tu proyecto):module.exports = function (grunt) { grunt.initConfig({
// define source files and their destinations uglify: { files: { src: ''js/*.js'', // source files mask dest: ''jsm/'', // destination folder expand: true, // allow dynamic building flatten: true, // remove all unnecessary nesting ext: ''.min.js'' // replace .js to .min.js } }, watch: { js: { files: ''js/*.js'', tasks: [ ''uglify'' ] }, } }); // load plugins grunt.loadNpmTasks(''grunt-contrib-watch''); grunt.loadNpmTasks(''grunt-contrib-uglify''); // register at least this one task grunt.registerTask(''default'', [ ''uglify'' ]);
};Una vez hecho esto, solo necesitas construirlo. Escriba en la consola:
grunt
o - mejor - si escribe ejecutar el comando a continuación - ronzal controlará los cambios en sus archivos fuente, y si cambia alguno de ellos, los compilará automáticamente:
grunt watch --force
A continuación, puede agregar más complementos, como: minificación css, preprocesadores css (menos, sass, stylus), jshint, etc.
Si está en Linux / Mac y tiene acceso a bash, puede usar uglifyjs en múltiples archivos JS de la siguiente manera:
rm *.min.js; for f in *.js; do short=${f%.js}; uglifyjs $f > $short.min.js; done
crea un archivo bat con inicio en cada fila comenzando
start uglifyjs app/main.js -mt sort -c -e -o app/main.ug.js
start uglifyjs app/lib.js -mt sort -c -e -r myfunctionname -o app/lib.ug.js
start uglifyjs app/controllers/bbbCtrl.js -mt sort -c -o app/controllers/bbbCtrl.ug.js
start uglifyjs app/controllers/aaaCtrl.js -mt sort -c -e -o app/controllers/aaaCtrl.ug.js
npm-solo manera:
correr:
npm install uglifyjs-folder --save-dev
y luego agregue a su
package.json
algo como:"uglifyjs": "uglifyjs-folder js -eo jsm"
entonces corre:
npm run uglifyjs
Tenga en cuenta que si necesita generar en la misma carpeta que los archivos de origen son ( js
), los siguientes deberían hacer el trabajo:
correr:
npm install del-cli uglifyjs-folder --save-dev
y luego agregue a su
package.json
algo como:"uglifyjs": "del js/*.min.js; uglifyjs-folder js -eo js"
entonces corre:
npm run uglifyjs