2017-02-17 5 views
10

Я использую MEAN, Angular 2, Node/Express, Angular-CLI и ng build --prod для создания моего приложения, и у меня есть пародия на комментарий с кодом throwaway и миллиард отладочных команд console.log в моем приложении. Есть ли способ, чтобы процесс сборки удалял все комментарии и инструкции console.log при их создании? Мысль о том, чтобы делать это вручную, страшно!Снять все комментарии и console.logs с помощью ng build --prod, возможно?

+0

Я бы себе представить, что комментарии уже удалены, посмотрели ли вы на выход ? Но как это должно знать, какие журналы являются функциональностью и которые просто отлаживают? – jonrsharpe

+0

angular-cli использует webpack под капотом, который уже выполняет какое-то манипулирование javascript во время процесса объединения. Я считаю, что есть плагины для webpack, чтобы удалить ведение журнала консоли, а также комментарии во время процесса mangle, но я не уверен, как синхронизировать это с угловым cli. – silencedmessage

ответ

13

У меня есть простой исправление. Поместите этот код в main.ts

if(env === 'prod') { // assuming you have env variable configured 
    window.console.log = function(){}; 
} 
+1

LOL хорошая идея, проблема в том, что у меня больше команд console.log в моем серверном коде: P спасибо, хотя – seanEd

+1

Вы можете сделать то же самое и на код сервера. Поместите этот код в 'server.js'. Не прикрепляйте к окну, потому что его нет в узле env. – Sudhakar

+0

gr8 идея ... я спас мой день. :) –

2

Вы можете использовать ng lint с --fix флагом и no-console правила в конфигурационном файле tslint. И подключите его к вызову сборки в файле пакета.

например .: ... "prebuild": "ng lint --fix", "build": "ng build -prod", ...

и построить приложение

npm run build

исх: https://github.com/angular/angular-cli/wiki/lint

+0

- это 'npm run build' так же, как работает' ng build --prod'? –

+0

Да, но 'prebuild' commend не будет запускаться. Вы можете сделать два звонка: 'ng lint --fix && ng build -prod' – Jan

+0

Мне нравится идея, но запущенная строка с опцией --fix фактически не удаляет использование консоли в моих файлах. Любая идея почему? – Bob

3

Просто добавьте этот window.console.log = function(){}; к if (environment.production) { enableProdMode(); }