2017-01-17 10 views
0

Я использую gulp, browserify и tsify связать мое приложение и я указую browserify в файл main.ts. Это все, что я делаю, чтобы связать приложение. Но когда я пытаюсь запустить файл index.html, который импортировал связанный файл js, я получаю ошибку: this._nativeError is undefined с пустым экраном.this._nativeError неопределенен, когда я расслоение моего углового 2 приложения

Мои tsconfig.json:

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "outDir": "../dist/out-tsc-e2e", 
    "sourceMap": true, 
    "target": "es5", 
    "typeRoots": [ 
     "../node_modules/@types" 
    ] 
    } 
} 

Мой глоток задача:

gulp task

+0

Какую версию 'zonejs' вы используете? – yurzui

+0

Варианты зон версии 0.7.5 –

+1

Перейти на 0.7.4. Исправлена ​​ошибка в 7.5 https://github.com/angular/zone.js/issues/595 – yurzui

ответ

0

Что касается конфигурации tsify, вы определяете:

defaultOptions = { 
    ... 
    tsifyOptions: {}, 
    ... 
} 

но вы используете:

.plugin(tsify, defaultOptions.tsifydefaultOptions) 

Это неясно, является ли это связано с вашей проблемой, но если ваш tsconfig.json не в том же каталоге, что package.json и не в родительском каталоге, он не будет найден. И поскольку ваша конфигурация включает ../node_modules/@types, кажется, что это не так.

Для того, чтобы tsify знать, где tsconfig.json, вы можете указать project вариант:

.plugin(tsify, { project: './some-directory/tsconfig.json' }) 
+0

Я не понимаю, что вы пытаетесь предложить с помощью '../ node_modukles/@ types'. Можете ли вы дать мне более подробную информацию об этом? –

+0

Просто, если ваш 'tsconfig.json' имеет этот путь, я предполагаю, что он не находится в том же каталоге, что и ваш' package.json' - это каталог, из которого 'tsify' начнет искать его. Там нет проблем, но «tsify» нужно будет сказать, где это, вот и все. Параметр 'project' должен быть установлен на путь' tsconfig.json' * relative * к вашему 'package.json'. – cartant

+0

Опять же, это может не решить вашу проблему, но первое, что вам нужно исправить, это ошибка 'experimentalDecorators', так как это означает, что' tsify' не может найти ваш 'tsconfig.json'. – cartant

0

Я имел такой же вопрос и нашел свое решение, поставив console.log внутри compiler.umd.js как было предложено здесь: https://stackoverflow.com/a/41644735/7434393

Around line 1604 in the compiler.umd.js I added a console.log to show me the message.

It is part of the set function of the Object.defineProperty(BaseError.prototype, "message" definition.

The setter is assigning the message to the _nativeError.message, but _nativeError is undefined and thus, THAT was blowing up, hiding the REAL error message.

So, I just put a console.log to spit out the message that was being passed in, and it showed me the actual error I had (a template error).

Therefore, this appears to be a bug in their code.