1

Я занимаюсь разработкой веб-приложений в Visual Studio 2015 с Angular2 и машинопись. Я использую Gulp для генерации распределенных уменьшенных js файлов. С Angular2 Я вижу, что нет никакой необходимости transpile машинописи ни с Visual Studio ни с Глотком как SystemJs делает это при импорте модуля.Angular2 машинопись transpiler с минификация/уродовать

Теперь вопрос:

Как SystemJs работать с минификацией, uglification и так далее?

System.import('app/main').then(null, console.error.bind(console)); 

Как мне угадать или угадать это?

+0

Анализируя немного больше, я вижу, что 'System.config' имеет свойство с именем сверток, где я могу расслоение моих нескольких модулей. Я не нашел ничего, кроме уругвай. – DAG

+0

Эти опции принадлежат [SystemJS Builder] (https://github.com/systemjs/builder#minfication--source-maps). Угловые2 учебники не используют SystemJS Builder –

ответ

6

SystemJS является

Универсальный динамический модуль Загрузчик - загружает модули ES6, AMD, CommonJS и глобальные сценарии в браузере и NodeJS. Работает как с Traceur, так и с Babel.

В самом деле, есть два пути использования SystemJS:

  • Transpile ваших машинопись файлов в браузере. Это означает, что SystemJS загружает ваши модули, загружает соответствующие файлы TypeScript и переносит их на лету. Следующая конфигурация может быть использована в данном случае:

    <script> 
        System.config({ 
        transpiler: 'typescript', 
        typescriptOptions: { 
         emitDecoratorMetadata: true 
        }, 
        packages: { 
         'app': { 
         defaultExtension: 'ts' 
         } 
        } 
        }); 
        System.import('app/main') 
        .then(null, console.error.bind(console)); 
    </script> 
    
  • Использовать ранее transpiled файлы. В этом случае вам необходимо использовать компилятор TypeScript для генерации JS-файлов из TypeScript. Эти JS-файлы напрямую зависят от SystemJS API для регистрации и импорта модулей.

    <script> 
        System.config({ 
        packages: { 
         'app': { 
         defaultExtension: 'js' 
         } 
        } 
        }); 
        System.import('app/main') 
        .then(null, console.error.bind(console)); 
    </script> 
    

Этот вопрос также может помочь вам:

Это для контекста. Что касается вашего вопроса, кажется, что вы используете первый вариант. Чтобы ответить на ваш вопрос, минимизация вещей имеет смысл только для второго варианта. По сути, это соответствует оптимизации элементов для загрузки для ваших приложений (количество сетевых вызовов, размеры файлов). Поскольку вы используете скомпилированные JS-файлы для этой опции, вы можете их минимизировать/угадать. Если вы хотите создать только один JS-файл, вы можете рассмотреть свойство outFile компилятора TypeScript.

Смотрите этот вопрос для более подробной информации:

+0

Это замечательно. Большое спасибо. Как я вижу в упомянутом сообщении, даже System.config больше не нужен. Ты знаешь почему? – DAG

+0

Добро пожаловать! В вам не требуется System.config, поскольку с модулями outFile явным образом регистрируется в System.register в выходном файле. Вам не нужно настраивать конфигурацию между модулями и именами файлов (что необходимо без опции) ... –