2016-05-06 3 views
8

Quando si aggiunge una configurazione base express.js (utilizzando TypeScript) a un progetto Angular2 inizializzato con angular-cli ng new [project-name], è necessario aggiungere la seguente digitazione per compilare l'espresso server utilizzando sorso:Aggiunta di codice lato server a conflitti di progetto angular-cli con digitazioni di nodo

tipizzazioni installare --ambient nodo --save

Questo aggiunge la seguente riga al typings/browser.d.ts e typings/main.d.ts

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

Nel file espresso server.ts posso aggiungere un riferimento a main invece di browser per mantenere dattiloscritto felice

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

Ma quando lascio il riferimento del nodo di battitura nel file browser.d.ts, il comando ng build fallirà:

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) 

ho potuto eliminare la riga per ora in browser.d.ts in modo che inizia a lavorare di nuovo, ma che non è l'ideale quando si reinstalla tipizzazioni. Attualmente sto utilizzando angular-cli v1.0.0-beta.0

risposta

4

L'errore effettivo deriva dal file src/typings.d.ts. Angular-cli crea questo typings.d.ts file con il seguente contenuto:

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

rimozione di questo file ha risolto il problema e l'applicazione è ancora funzionante.

+0

Potete fornire maggiori informazioni su come è stato possibile integrare il lato server con il cli angolare? Anche "ng build" e "ng serve" compilano ed eseguono il codice lato server? – Johnny

+0

Non compilo codice server con l'angular-cli, vorrei anche mantenerlo in questo modo.Per prerparare una build uso solo gulp. Un'attività chiama ng serve e un'altra attività avvia il server. – emp

+0

Grazie per la risposta. Ti capita di avere un link a un progetto seme che usa sia il cli angolare che il codice del server? – Johnny

2

sono stato in grado di risolvere questo cambiando src/typings.d.ts

Da

declare var module: { id: string };

Per

declare var module: NodeModule;

e fare in modo che avevo tipizzazioni per il nodo 4 tramite typings install node-4 --ambient --save.

0

L'errore sul file .spec.ts. Quando aggiorno

'@ angolare/testing';

codice come

'@ angolare/core/testing';

il mio errore risolto;

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

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