2015-09-13 2 views
2

Мы используем grunt для dev и prod. Для dev мы не выполняем uglify, а делаем prod. К сожалению, я не могу изменить ссылки на скрипт из чего-то вроде этого «script.js» на «script.min.js».Grunt uglify. Как минимизировать и заменять исходный файл результатом?

Я пробовал задачу хрюкать, как это для прода окружающей среды, но она не работает:

// uglify 
uglify: { 
    options: { 
     drop_console: true 
    }, 
    componet: { 
     src: [componet.path + 'script.js'], 
     dest: componet.path + 'script.js' 
    }, 
} 

Что такое лучший рабочее процесс, чтобы изменить содержание «script.js» с обезображенными версиями?

+0

Работы в хрюкать-вно-уродовать v0.9.2 - просто проверить, используя конфигурацию. Вы должны убедиться, что '' '' compet.path + 'script.js'''' создает допустимый путь к правильному файлу и что исходный файл существует в соответствующей точке цикла сборки. –

ответ

1

Попробуйте с этим:

uglify: { 
    options: { 

    }, 
    main: { 
     files: [{ 
      expand: true, 
      src: ['yourpath/**/*.js'], 
      dest: '' 
     }] 
    } 
} 
+0

Это работает! Спасибо! – MinM

1

Есть разные возможности определить задачу черновой, вот несколько примеров:

uglify: { 
    options: { 
    drop_console: true 
    }, 
    componet: { 
    files: [ 
     // map one to one 
     { 'path/to/minimized01.min.js': 'path/to/source01.js' }, 
     { 'path/to/minimized02.min.js': 'path/to/source02.js' }, 
     // concat several sources into a minimized destination 
     { 'path/to/minimized03and04.min.js': [ 'path/to/source03.js', 'path/to/source04.js' ]}, 
     // map all files in a folder, one to one into a destination 
     { expand: true, 
     cwd: 'path/to/a/source/folder', 
     src: [ '**/*.js', '!excludeThisFile.js' ], 
     dest: 'path/to/a/destination/folder', 
     ext: 'min.js' // if you want to change each extension to min.js 
     } 
    ] 
    } 
} 

И тогда вы можете запустить его как grunt uglify:component ... Я всегда устанавливать отдельные задачи для разработки и производства, для развития я d предлагаю использовать uglify, не отбрасывая консоль, и использовать опцию beautify ... Еще лучше, если вы используете сопоставление источников, это очень полезно для отладки в браузерах.

+0

выглядит как стандартный рабочий процесс uglify. Можно ли полностью отключить uglify для среды dev? – MinM

+0

Вы можете определить задачи, которые будут запускать другие задачи: 'grunt.registerTask ('production', ['clean', 'copy', 'compass: production', 'uglify']); grunt.registerTask ('development', ['clean', 'copy', 'watch']); ' , а затем вызывать' grunt development' или 'grunt production' ... –

+0

Так, например, grunt.registerTask ('dev', ['copy']); 'и' grunt.registerTask ('prod', ['uglify']); вы можете скопировать источник в папку dest с помощью 'grunt dev' и uglify it by 'grunt prod' –

Смежные вопросы