this._nativeError не определен, когда я связываю свое приложение angular 2

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

My 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"
    ]
  }
}

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

задание глотка


person Karthik Priyadarshan    schedule 17.01.2017    source источник
comment
Какую версию zonejs вы используете?   -  person yurzui    schedule 17.01.2017
comment
Версии зоны 0.7.5   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
Переход на 0.7.4 В версии 7.5 есть ошибка github.com/angular/zone.js /вопросы/595   -  person yurzui    schedule 17.01.2017
comment
Я проверю с этим. Однако приложение отлично работает в режиме разработки, который я использую с помощью angular-cli.   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
«Не удается разрешить все параметры для UserService: (?,?)» Это то, что я получаю сейчас, и экран по-прежнему пуст. Что может быть причиной этого?   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
Это правильная ошибка. Возможно, у вас циклическая зависимость   -  person yurzui    schedule 17.01.2017
comment
Будет ли это вызвано комплектацией?   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
Трудно сказать, не видя реального кода   -  person yurzui    schedule 17.01.2017
comment
Но он отлично работает в режиме разработки.   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
Пока браузер связывает приложение, я получаю сообщение об ошибке: «Экспериментальные декораторы — это экспериментальный вариант». Пожалуйста, установите его в файле tsconfig.json».   -  person Karthik Priyadarshan    schedule 17.01.2017
comment
Не могли бы вы включить свою конфигурацию browserify/tsify, пожалуйста? Если вы видите эту ошибку, tsify не использует/не находит ваш tsconfig.json, так как вы, похоже, включили experimentalDecorators.   -  person cartant    schedule 17.01.2017
comment
@cartant ссылка pastebin в моем описании содержит параметры браузера. Он находится в переменной с именем defaultOptions.   -  person Karthik Priyadarshan    schedule 18.01.2017


Ответы (2)


Что касается конфигурации 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' })
person cartant    schedule 18.01.2017
comment
Я не понимаю, что вы пытаетесь предложить с помощью ../node_modukles/@types. Можете ли вы дать мне более подробную информацию об этом? - person Karthik Priyadarshan; 18.01.2017
comment
Просто если в вашем tsconfig.json есть этот путь, я предполагаю, что он не находится в том же каталоге, что и ваш package.json, а это тот каталог, из которого tsify начнет его искать. С этим проблем нет, но нужно будет сказать tsify, где он находится, вот и все. Параметр project должен быть установлен на путь к вашему tsconfig.json относительно к вашему package.json. - person cartant; 18.01.2017
comment
Опять же, это может не решить вашу проблему, но первое, что вам нужно исправить, это ошибка experimentalDecorators, так как это означает, что tsify не может найти ваш tsconfig.json. - person cartant; 18.01.2017
comment
` импорт './polyfills.ts'; ^ ParseError: «импорт» и «экспорт» могут появляться только с «sourceType: модуль» `Это то, что я получаю сейчас, когда указал tsify на файл tsconfig. - person Karthik Priyadarshan; 18.01.2017
comment
Я не думаю, что отладка сборки таким образом будет возможна. Слишком много неизвестных. Однако, если вы импортируете файлы .ts из node_modules, вы также должны указать параметр global: true для tsify. Вместо этого вам следует серьезно подумать об использовании инструментов angular-cli для создания пакета. ... - person cartant; 18.01.2017
comment
... Если вы раньше не использовали browserify или tsify, начать сборку с Angular 2 довольно сложно, но если вы хотите продолжать с ним, все, что я могу предложить, это просмотреть документы и заставить все работать с простой проект и командную строку browserify. Затем займитесь Angular 2 и gulp и т. д. - person cartant; 18.01.2017

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

Около строки 1604 вcompile.umd.js я добавил console.log, чтобы показать мне сообщение.

Это часть функции set определения Object.defineProperty(BaseError.prototype, "message".

Установщик присваивает сообщение _nativeError.message, но _nativeError не определено и, таким образом, ЭТО взрывалось, скрывая НАСТОЯЩЕЕ сообщение об ошибке.

Итак, я просто поместил console.log, чтобы выдать сообщение, которое было передано, и он показал мне реальную ошибку, которая у меня была (ошибка шаблона).

Следовательно, это похоже на ошибку в их коде.

person kontrollanten    schedule 18.01.2017