2016-10-17 2 views
0

У меня есть проект .net Wepapi как Backend и Frontend, написанный с помощью Angular2, все включено в визуальное студийное решение. Строка локально отлично работает, но если я построю ее с помощью сборки TFS Online на моем CD-конвейере, сборка завершится неудачно. Я получаю следующую ошибку:Код Angular2 вызывает ошибку с TFS Build

Build: Cannot find module '@angular/core'.

и некоторые другие подобные этому.

Это мой package.json файл

{ 
    "name": "emersy", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "concurrently \"npm run tsc:w\" \"npm run lite\" ", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "@angular/common": "~2.1.0", 
    "@angular/compiler": "~2.1.0", 
    "@angular/core": "~2.1.0", 
    "@angular/forms": "~2.1.0", 
    "@angular/http": "~2.1.0", 
    "@angular/platform-browser": "~2.1.0", 
    "@angular/platform-browser-dynamic": "~2.1.0", 
    "@angular/router": "~3.1.0", 
    "@angular/upgrade": "~2.1.0", 
    "bootstrap": "^3.3.7", 
    "core-js": "^2.4.1", 
    "jquery": "^2.2.3", 
    "reflect-metadata": "^0.1.8", 
    "rxjs": "5.0.0-beta.12", 
    "systemjs": "0.19.39", 
    "zone.js": "^0.6.25" 
    }, 
    "devDependencies": { 
    "concurrently": "^3.0.0", 
    "lite-server": "^2.2.2", 
    "typescript": "^2.0.3", 
    "typings": "^1.4.0" 
    } 
} 

это мои типизации

{ 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160725163759", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "node": "registry:dt/node#6.0.0+20160909174046" 
    } 
} 

и это мой TSconfig

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": true 
    } 
} 

Примечание: Я использую XAML сборки и не новый сборки двигатель.

здесь мой systems.js.config

(function (global) { 
    System.config({ 
     transpiler: 'ts', 
     typescriptOptions: { 
      tsconfig: true 
     }, 
     meta: { 
      'typescript': { 
       "exports": "ts" 
      } 
     }, 
     paths: { 
      // paths serve as alias 
      'npm:': 'https://unpkg.com/' 
     }, 
     // map tells the System loader where to look for things 
     map: { 
      // our app is within the app folder 
      app: 'app', 

      // angular bundles 
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
      '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js', 

      // other libraries 
      'rxjs': 'npm:rxjs', 
      'ts': 'npm:[email protected]/lib/plugin.js', 
      'typescript': 'npm:[email protected]/lib/typescript.js', 

     }, 
     // packages tells the System loader how to load when no filename and/or no extension 
     packages: { 
      app: { 
       main: './main.ts', 
       defaultExtension: 'ts' 
      }, 
      rxjs: { 
       defaultExtension: 'js' 
      } 
     } 
    }); 
})(this); 

EDIT1: После переноса сборки на vnext сборки теперь работает и делать не дает ошибку сборки. Теперь я добавил развертывание в мое приложение azure как шаг сборки. Приложение было сброшено на приложение azure, но мой угловой код не работает. я получаю эту ошибку:

mysite.azurewebsites.net/:38 Error: (SystemJS) Unexpected token < 
    SyntaxError: Unexpected token < 
    Evaluating http://mysite.azurewebsites.net/app/main.ts 
    Error loading http://mysite.azurewebsites.net/app/main.ts 

выглядит так не справляется НПМ модули

Это моя сборка конфигурации enter image description here

EDIT 2: enter image description here

enter image description here

EDIT 3: MSBuild Аргументы

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=$(build.stagingDirectory) 

enter image description here

+0

Будет полезно знать, как построить не удается. Возможно, есть сообщение об ошибке? –

+0

О, извините, что вы правы :-) Сборка: Невозможно найти модуль '@ angular/core'. добавлено также к сообщению выше – cpiock

+0

Как вы загружаете свое угловое приложение на свою страницу? System.Import? Если да, то как выглядит ваш файл systemjs.config? – AntonJ

ответ

0

После переноса сборки на vnext сборки теперь работает и делать не дает ошибку сборки. Теперь я добавил развертывание в мое приложение azure как шаг сборки. Приложение было сброшено на приложение azure, но мой угловой код не работает. я получаю эту ошибку:

mysite.azurewebsites.net/:38 Error: (SystemJS) Unexpected token < 
    SyntaxError: Unexpected token < 
    Evaluating http://mysite.azurewebsites.net/app/main.ts 
    Error loading http://mysite.azurewebsites.net/app/main.ts 

Похоже, что не справляется НПМ модули

Это моя сборка конфигурации enter image description here

+0

Вы можете добавить новую проблему в свое исходное сообщение или создать новый поток этой проблемы. Вопрос или вопрос не должен быть в ответе. Кроме того, для этой проблемы вы можете предоставить подробную информацию о настройке npm install, build для решения по копированию и публикации артефактов сборки. –

+0

Эта статья может принести вам пользу: https://azure.microsoft.com/en-us/documentation/articles/nodejs-use-node-modules-azure-apps/ –

+0

добавил все в первое сообщение. Должен ли я делать это в задаче npm? npm run typings install – cpiock