2016-09-20 3 views
0

Я пытаюсь использовать Angular 2.0.0 с JSMP, SystemJS и TS Loader в ASP.NET MVC 5 (не основной) приложение.Не удается найти модуль '@ угловой/ядро' '@ угловой/ядро' @ угловой/платформенный браузер @ угловой/платформенный браузер-динамик

Visual Studio жалуется, что находит угловые модули.

Severity Code Description Project File Line Suppression State 
Error TS2307 Cannot find module './components/app.component'.  
Error TS2307 Cannot find module '@angular/core'. 
Error TS2307 Cannot find module '@angular/core'. 
Error TS2307 Cannot find module '@angular/platform-browser'. 
Error TS2307 Cannot find module '@angular/platform-browser-dynamic'. 

Я устанавливаю угловой через JSPM.

tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    /* target of the compilation (es5) */ 
    "module": "system", 
    /* System.register([dependencies], function) (in JS)*/ 
    "moduleResolution": "node", 
    /* how module gets resolved (needed for Angular 2)*/ 
    "emitDecoratorMetadata": true, 
    /* needed for decorators */ 
    "experimentalDecorators": true, 
    /* needed for decorators (@Injectable) */ 
    "noImplicitAny": false 
    /* any has to be written explicity*/ 
    }, 
    "exclude": [ 
    /* since compiling these packages could take ages, we want to ignore them*/ 
    "jspm_packages", 
    "node_modules" 
    ], 
    "compileOnSave": false 
    /* on default the compiler will create js files */ 
} 

config.js

System.config({ 
    baseURL: "/", 
    defaultJSExtensions: true, 
    transpiler: "babel", 
    babelOptions: { 
    "optional": [ 
     "runtime", 
     "optimisation.modules.system" 
    ] 
    }, 
    typescriptOptions: { 
    "tsconfig": true 
    }, 
    paths: { 
    "github:*": "jspm_packages/github/*", 
    "npm:*": "jspm_packages/npm/*" 
    }, 

    packages: { 
    "app": { 
     "main": "bootstrap", 
     "format": "system", 
     "defaultExtensions": "ts", 
     "meta": { 
     "*.ts": { 
      "loader": "ts" 
     } 
     } 
    } 
    }, 

    map: { 
    "@angular/common": "npm:@angular/[email protected]", 
    "@angular/compiler": "npm:@angular/[email protected]", 
    "@angular/core": "npm:@angular/[email protected]", 
    "@angular/http": "npm:@angular/[email protected]", 
    "@angular/platform-browser": "npm:@angular/[email protected]", 
    "@angular/platform-browser-dynamic": "npm:@angular/[email protected]", 
    "@angular/router": "npm:@angular/[email protected]", 
    "babel": "npm:[email protected]", 
    "babel-runtime": "npm:[email protected]", 
    "core-js": "npm:[email protected]", 
    "es6-shim": "github:es-shims/[email protected]", 
    "reflect-metadata": "npm:[email protected]", 
    "rxjs": "npm:[email protected]", 
    "ts": "github:frankwallis/[email protected]", 
    "zone.js": "npm:[email protected]", 
    "github:frankwallis/[email protected]": { 
     "typescript": "npm:[email protected]" 
    }, 

    } 
}); 

app.module.ts

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { AppComponent } from './components/app.component'; 
@NgModule({ 
    imports: [BrowserModule], 
    declarations: [AppComponent], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

index.html

<script src="../../jspm_packages/npm/[email protected]/client/shim.min.js"></script> 
    <script src="../../jspm_packages/npm/[email protected]/dist/zone.min.js"></script> 
    <script src="../../jspm_packages/npm/[email protected]/Reflect.js"></script> 
    <script src="../../jspm_packages/system.js"></script> 
    <script src="../../config.js"></script> 
    <script> 
      System.config 
      ({ 
       map: { 
        "@@angular/common": "npm:@@angular/[email protected]", 
        "@@angular/compiler": "npm:@@angular/[email protected]", 
        "@@angular/core": "npm:@@angular/[email protected]", 
        "@@angular/http": "npm:@@angular/[email protected]", 
        "@@angular/platform-browser": "npm:@@angular/[email protected]", 
        "@@angular/platform-browser-dynamic": "npm:@@angular/[email protected]", 
        "@@angular/router": "npm:@@angular/[email protected]", 
        "reflect-metadata": "npm:[email protected]" 
       }, 
       transpiler: "ts", 
       packages: 
       { 
        "app": { 
         "defaultExtension": "ts", 
         "meta": { 
          "*.ts": { 
           "loader": "ts" 
          } 
         } 
        } 
       } 
      }); 

      console.log("System.Config Init OK"); 
    </script> 

ответ

1

Для использования JSPM вам нужно машинопись 2.0, так что вы можете использовать конфигурацию пути и сказать машинопись, где модуль расположен.

tsconfig.json

{ 
 
    "compilerOptions": { 
 
     "target": "es5", 
 
     "module": "system", 
 
     "moduleResolution": "node", 
 
     "sourceMap": true, 
 
     "emitDecoratorMetadata": true, 
 
     "experimentalDecorators": true, 
 
     "removeComments": false, 
 
     "noImplicitAny": false, 
 
     "baseUrl": ".", 
 
     "paths": { 
 
      "@angular/core": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/platform-browser-dynamic": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/common": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/compiler": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/forms": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/http": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/platform-browser": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "@angular/router": [ 
 
       "jspm_packages/npm/@angular/[email protected]" 
 
      ], 
 
      "es6-shim": [ 
 
       "jspm_packages/npm/[email protected]" 
 
      ], 
 
      "reflect-metadata": [ 
 
       "jspm_packages/npm/[email protected]" 
 
      ], 
 
      "rxjs/*": [ 
 
       "jspm_packages/npm/[email protected]/*" 
 
      ], 
 
      "systemjs": [ 
 
       "jspm_packages/npm/[email protected]" 
 
      ], 
 
      "zone.js": [ 
 
       "jspm_packages/npm/[email protected]" 
 
      ] 
 
     } 
 
    }, 
 
    "exclude": [ 
 
     "node_modules", 
 
     "jspm_packages" 
 
    ] 
 
}

+0

Я отредактировал tsconfig.json и ту же ошибку, но спасибо за отзыв. Не могли бы вы вставить весь файл tsconfig.json, возможно, что-то не хватает. – rco

+0

Я отредактировал ответ с полным tsconfig.json. Можете ли вы проверить, используете ли вы текст версии машинописного текста версии 2.0 для компиляции? Функция «paths» была добавлена ​​только на 2.0. http://stackoverflow.com/questions/32385087/vs2015-change-typescript-version –

1

Убедитесь, что папка 'node_modules' (нажмите на ссылку показать скрытые файлы) в нужном месте (в корне проекта, братьев и сестер с Wwwroot). Также проверьте @angular показывает в проекте Dependencies папка:

([. Имя проектируемый] /Зависимости/НМП/@ угловой ...).

Я перемещал файлы вокруг, поскольку я интегрировал руководство по быстрому старту в новый проект ASP.NET Core (я знаю, что ваш не Core, но на всякий случай), и папка node_modules была неуместна.

надеюсь, что это поможет