2016-06-28 5 views
0

Я пытаюсь добавить зависимость к lodash к моему проекту, но сборка VS2015 продолжает взрываться. С этим в сборке «Build: Не удается найти модуль lodash». Сбой сборки из-за того, что компилятор typescript не может разрешить lodash. Вот мои package.json зависимости:Добавить Lodash в VS2015 Angular2 Project

"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); 

Большинство Googling вокруг этой ошибки приводит меня удалить мои node_modules папки полностью и повторно запустить npm install. Я сделал это 3 раза, перезапустил VS2015 и перезапустил свою виртуальную машину, но ничего не исправляет. Я копирую все необходимые зависимости из/node_modules в/Scripts/npmlibs, так что мне не нужно разворачивать 20 тыс. Файлов npm-загрузки на наши веб-серверы развертывания. Я проверил пути в файле system.config.js.

Я в недоумении, что не так с VS/npm, почему моя сборка здесь не работает.

Спасибо!

ответ

0

Итак, похоже, что lodash не поставляется с файлами .d.ts, или, может быть, я устанавливал его неправильно через npm ... В любом случае, чтобы разрешить это и получить мой машинописный текст для компиляции, мне пришлось добавить этот пакет nuget на мой веб-проекта

lodash type definitions

который добавил /Scripts/typings/lodash/lodash-3.10.d.ts и lodash.d.ts. Я должен был удалить его, потому что TSC жаловался на дублирующие определения, поэтому я удалил lodash-3.10.d.ts. Перезапущен VS и он компилируется.

Я люблю angular2 до сих пор, но святая корова, мир JS/Typcript быстро меняется, я сосну для добрых старых сценариев src-тегов на вашей странице и скачиваю zip-файлы с .js-файлами ... :(

Смежные вопросы