2016-12-02 3 views
0

С помощью Angular 2 (cli), при запуске ng build -prod, я получаю очень странную ошибку, что заставляет меня думать, что это не ошибка вообще.Угловая 2 prod build - Uglify Ошибка отладки

Он говорит, что что-то неправильно в строке 5 этого файла:

import { Injectable } from '@angular/core'; 
    import * as io from "socket.io-client"; 

    @Injectable() 
    export default class SocketService { 

     socket; 
     // 
     // constructor() {} 
     // 
     init() { 
     //  this.socket = io('localhost:3000'); 
     } 
    } 

Это дает эту ошибку:

ERROR in main.b1e7bf5cf9ed04b8ff8d.bundle.js from UglifyJs 
SyntaxError: Unexpected token: name (SocketService) 
[/Users/kewinbrandsma/Projects/TradeJS/~/angular2-template-loader!/Users/kewinbrandsma/Projects/TradeJS/src/client/app/services/socket.service.ts:5,0][main.b1e7bf5cf9ed04b8ff8d.bundle.js:3265,4 

Во время работы его нг служить (режим разработчика) не дает никаких ошибок при все и прекрасно работает. Поэтому его действительно что-то UglifyJS не нравится.

В стеке ошибок отображается номер строки для «предварительно скомпилированного пакета.js». (main.b1e7bf5cf9ed04b8ff8d.bundle.js: 3265,4), но я не могу найти файл, поскольку он, по-видимому, остается только в памяти.

Всегда ли он разрушается после неудачной сборки или есть способ записи на диск, даже когда uglify жалуется? Потому что это делает невозможным для отладки ошибки уродовать


кажется, есть что-то TODO с https://github.com/angular/angular-cli/issues/1333

Так что сейчас, чтобы просто запустить 1 (нет уменьшенная) строить, отключить уродовать полностью в webpack- build-production.js .. Но этот файл живет в угловых node_modules, поэтому его не решение вообще.

ответ

0

После того, как вы его проложили намного больше, я обнаружил, что настройки tsconfig нацелены: «es5» решает его. Проблема, с которой я столкнулся, заключается в том, что машинопись еще не поддерживает async/await с es5 .. Поэтому я не мог использовать цель: «es5».

Но установка typescript @ rc в качестве пакета npm работала! Новая версия 2.1 поддерживает async/await в режиме es5.

Этот пакет, вероятно, будет выпущен в ближайшие месяцы.