2016-06-28 9 views
0

私はプロジェクトにlodashへの依存関係を追加しようとしていますが、VS2015ビルドは爆発的に続きます。ビルド出力でこれを使用して "ビルド:モジュール 'lodash'を見つけることができません。 typescriptコンパイラがlodashを解決できないため、ビルドが失敗します。ここに私のpackage.jsonの依存関係である:ここでLodashをVS2015 Angular2プロジェクトに追加

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

は私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); 

このエラーを回避グーグルのほとんどは完全に私node_modulesフォルダを削除すると、再実行、私をリードしていますnpmをインストールします。私はこれを3回やり、VS2015を再起動し、VMを再起動しましたが、これを修正するものはありません。/node_modulesから/ Scripts/npmlibsに必要なすべての依存関係をコピーして、npmのダウンロードファイルを展開Webサーバーに展開する必要はありません。私はsystem.config.jsファイルのパスを確認しました。

なぜ私のビルドがここで失敗しているのかVS/npmの何が間違っているのか分からない。

ありがとうございます!

答えて

0

だから、lodashに.d.tsファイルが付いていないか、あるいはnpmで正しくインストールされていなかったようです...これを解決して、私のtypescriptをコンパイルするには、このnugetパッケージ/Scripts/typings/lodash/lodash-3.10.d.tsとlodash.d.tsを追加私のWebプロジェクト

lodash type definitions

へ。 TSCが重複する定義について不平を言っていたので削除する必要があったので、lodash-3.10.d.tsを削除しました。 VSを再起動しコンパイルします。

私は今までAngular2を愛していますが、JS/Typescriptの世界は急速に変わりつつあります。あなたのページにスクリプトのsrcタグがあり、.jsファイルでzipファイルをダウンロードしています。:

関連する問題