2016-06-28 12 views
0

Ich versuche eine Abhängigkeit zu lodash zu meinem Projekt hinzuzufügen, aber die VS2015-Build hält in die Luft. Mit diesem in der Build-Ausgabe "Build: Kann Modul 'lodash' nicht finden". Der Build schlägt fehl, da der Typskript-Compiler lodash nicht auflösen kann. Hier ist meine package.json Abhängigkeiten:Fügen Sie Lodash zu VS2015 Angular2 Projekt hinzu

"dependencies": { 
    "@angular/common": "2.0.0-rc.3", 
    "@angular/compiler": "2.0.0-rc.3", 
    "@angular/core": "2.0.0-rc.3", 
    "@angular/forms": "0.1.1", 
    "@angular/http": "2.0.0-rc.3", 
    "@angular/platform-browser": "2.0.0-rc.3", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.3", 
    "@angular/router": "3.0.0-alpha.7", 
    "@angular/router-deprecated": "2.0.0-rc.2", 
    "@angular/upgrade": "2.0.0-rc.3", 

    "systemjs": "0.19.27", 
    "core-js": "^2.4.0", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "zone.js": "^0.6.12", 

    "lodash": "4.13.1", 
    "angular2-in-memory-web-api": "0.0.12", 
    "bootstrap": "^3.3.6" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.2.0", 
    "typescript": "^1.8.10", 
    "typings":"^1.0.4" 
    } 

Hier ist meine system.config.js:

/** 
* System configuration for Angular 2 samples 
* Adjust as necessary for your application needs. 
*/ 
(function (global) { 
    // map tells the System loader where to look for things 
    var map = { 
     'app': 'app', // 'dist', 
     '@angular': 'Scripts/npmlibs/@angular', 
     'angular2-in-memory-web-api': 'Scripts/npmlibs/angular2-in-memory-web-api', 
     'rxjs': 'Scripts/npmlibs/rxjs', 
     'lodash': 'Scripts/npmlibs/lodash/lodash.js' 
    }; 
    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
     'app': { main: 'main.js', defaultExtension: 'js' }, 
     'rxjs': { defaultExtension: 'js' }, 
     'angular2-in-memory-web-api': { defaultExtension: 'js' }, 
     'lodash': { defaultExtension: 'js' } 
    }; 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'http', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router', 
     'router-deprecated', 
     'upgrade', 
     'forms' 
    ]; 

    // Individual files (~300 requests): 
    function packIndex(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 
    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     packages['@angular/' + pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
    } 
    // Most environments should use UMD; some (Karma) need the individual index files 
    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 

    var config = { 
     map: map, 
     packages: packages 
    } 
    System.config(config); 
})(this); 

Die meisten der googeln, um diesen Fehler hat mich führen zu meinem node_modules löschen Ordner vollständig und wieder laufen npm installieren. Ich habe das 3 Mal gemacht, VS2015 neu gestartet und meine VM neu gestartet, aber nichts behebt dies. Ich kopiere alle benötigten Abhängigkeiten von/node_modules nach/Scripts/npmlibs, damit ich die 20k-Dateien npm-Downloads nicht auf unseren Deployment-Webservern bereitstellen muss. Ich habe die Pfade in der Datei system.config.js überprüft.

Ich bin ratlos, was mit VS/npm falsch ist, warum mein Build hier versagt.

Danke!

Antwort

0

So sieht es aus wie lodash kommt nicht mit .d.ts Dateien, oder vielleicht habe ich es nicht ordnungsgemäß über npm installiert ... Entweder um dies zu lösen und mein Typoskript zu kompilieren, musste ich dieses nugget-Paket hinzufügen zu meinem Webprojekt

lodash type definitions

Welche hinzugefügt /Scripts/typings/lodash/lodash-3.10.d.ts und lodash.d.ts. Ich musste einen löschen, weil sich der TSC über doppelte Definitionen beschwert hat, also habe ich lodash-3.10.d.ts gelöscht. Neustart VS und es kompiliert.

Ich liebe angular2 so weit, aber heilige Kuh die JS/Typescript Welt ändert sich schnell, ich kiefer für die guten alten Zeiten von src Tags auf Ihrer Seite, und Zip-Dateien mit .js Dateien herunterladen ... :(

Verwandte Themen