2016-05-06 3 views
8

При добавлении базовой конфигурации express.js (с использованием TypeScript) в проект Angular2, который был инициализирован угловым cli ng new [project-name], мне нужно добавить следующую команду для компиляции выражения сервер с помощью глотком:Добавление кода на стороне сервера к конфликту с проектом angular-cli с типизацией узлов

типизации установить --ambient --save узел

Это добавляет следующую строку в typings/browser.d.ts и typings/main.d.ts

/// <reference path="browser/ambient/node/index.d.ts" /> 
and 
/// <reference path="main/ambient/node/index.d.ts" /> 

В экспресс-server.ts файл я могу добавить ссылку на main вместо browser держать машинопись счастливым

/// <reference path="../typings/main.d.ts" /> 

Но когда я оставляю ссылку на узел набрав в файле browser.d.ts, команда ng build потерпит неудачу:

Build failed. 
The Broccoli Plugin: [BroccoliTypeScriptCompiler] failed with: 
Error: Typescript found the following errors: 
    C:/Users/user123/Downloads/my-catalog-master/my-catalog-master/tmp/broccoli_type_script_compiler-input_base_path-7VFCE2dg.tmp/0/src/typings.d.ts (3, 13): Subsequent variable declarations must have the same type. Variable 'module' must be of type 'NodeModule', but here has type '{ id: string; }'. 
    at BroccoliTypeScriptCompiler._doIncrementalBuild (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\broccoli-typescript.js:115:19) 
    at BroccoliTypeScriptCompiler.build (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\broccoli-typescript.js:43:10) 
    at C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\index.js:152:21 
    at lib$rsvp$$internal$$tryCatch (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\node_modules\rsvp\dist\rsvp.js:1036:16) 
    at lib$rsvp$$internal$$invokeCallback (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\node_modules\rsvp\dist\rsvp.js:1048:17) 
    at lib$rsvp$$internal$$publish (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\node_modules\rsvp\dist\rsvp.js:1019:11) 
    at lib$rsvp$asap$$flush (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\node_modules\rsvp\dist\rsvp.js:1198:9) 
    at nextTickCallbackWith0Args (node.js:420:9) 
    at process._tickCallback (node.js:349:13) 

The broccoli plugin was instantiated at: 
    at BroccoliTypeScriptCompiler.Plugin (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\node_modules\broccoli-plugin\index.js:10:31) 
    at BroccoliTypeScriptCompiler.CachingWriter [as constructor] (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\broccoli-caching-writer\index.js:21:10) 
    at BroccoliTypeScriptCompiler (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\broccoli-typescript.js:27:10) 
    at Angular2App._getTsTree (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\angular2-app.js:280:18) 
    at Angular2App._buildTree (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\angular2-app.js:101:23) 
    at new Angular2App (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\lib\broccoli\angular2-app.js:42:23) 
    at module.exports (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\angular-cli-build.js:6:10) 
    at Class.module.exports.Task.extend.setupBroccoliBuilder (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\lib\models\builder.js:55:19) 
    at Class.module.exports.Task.extend.init (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\lib\models\builder.js:89:10) 
    at new Class (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\node_modules\core-object\core-object.js:18:12) 
    at Class.module.exports.Task.extend.run (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\lib\tasks\build.js:15:19) 
    at C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\lib\commands\build.js:32:24 
    at lib$rsvp$$internal$$tryCatch (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\node_modules\rsvp\dist\rsvp.js:1036:16) 
    at lib$rsvp$$internal$$invokeCallback (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\node_modules\rsvp\dist\rsvp.js:1048:17) 
    at lib$rsvp$$internal$$publish (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\node_modules\rsvp\dist\rsvp.js:1019:11) 
    at lib$rsvp$asap$$flush (C:\Users\user123\Downloads\my-catalog-master\my-catalog-master\node_modules\angular-cli\node_modules\angular-cli\node_modules\rsvp\dist\rsvp.js:1198:9) 

Я мог бы удалить строку на данный момент в browser.d.ts, чтобы он снова начал работать, но это не идеально при повторной установке типографских данных. Я в настоящее время использую angular-cli v1.0.0-beta.0

ответ

4

Актуальная ошибка возникает в файле src/typings.d.ts. Угловое-кли создает этот typings.d.ts файл со следующим содержимым:

/// <reference path="../typings/browser.d.ts" /> 
declare var module: { id: string }; 

Удаление этого файла решить эту проблему, и приложение продолжает работать.

+0

Не могли бы вы предоставить более подробную информацию о том, как вы смогли интегрировать серверную систему с угловым кли? Выполняют ли «ng build» и «ng serve» компиляцию и запуск кода на стороне сервера? – Johnny

+0

Я не компилирую код сервера с угловым кли, я также хотел бы сохранить его таким образом.Чтобы запланировать сборку, я просто использую глоток. Одна задача вызывает службу ng, а другая задача запускает сервер. – emp

+0

Спасибо за ответ. У вас есть ссылка на проект семян, который использует как угловой кли, так и код сервера? – Johnny

2

Я был в состоянии решить эту проблему путем изменения src/typings.d.ts

От

declare var module: { id: string };

Для

declare var module: NodeModule;

И убедившись, что у меня был типизации для узла 4 через typings install node-4 --ambient --save.

0

Ошибка в файле .spec.ts. Когда я обновляю

'@ angular/testing';

код как

'@ угловой/ядро ​​/ тестирования';

моя ошибка решена;

import { 
    describe, 
    ddescribe, 
    expect, 
    iit, 
    it 
} from '@angular/testing'; 
import {Hero} from './hero'; 

describe('Hero',() => { 
    it('should create an instance',() => { 
    expect(new Hero()).toBeTruthy(); 
    }); 
});