2017-11-01 7 views
2

각도 유성 적용에 https://github.com/Urigo/angular-meteor/tree/master/atmosphere-packages/angular-compilers을 사용합니다. 내가 컴파일하려고하면 meteor build이 실패합니다.Angular Meteor 앱이 각도 컴파일러와 함께 작동하지 않습니다. 0.2.5

meteor build /my_directory_name --directory --server-only --architecture os.linux.x86_64 

을 그리고 난 응용 프로그램 서버 번들을 실행할 때이 오류가 나타납니다 :

이 명령 난 실행

Uncaught SyntaxError: Unexpected token import 

내 프로젝트 사용 :

[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
msavin:mongol 
jalik:ufs 
jalik:ufs-gridfs 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
mys:fonts 
[email protected] 
[email protected] 
astrocoders:one-signal 
vsivsi:job-collection 
btafel:accounts-facebook-cordova 
[email protected] 
[email protected] 
[email protected] 
percolate:synced-cron 
meteorhacks:ssr 
[email protected] 
angular-compilers 

각도 - 유성 :

ang[email protected] 
[email protected] 
[email protected] 
[email protected]_1 

Package.json

{ 
    "name": "test", 
    "private": true, 
    "scripts": { 
    "start": "meteor --settings settings.json" 
    }, 
    "dependencies": { 
    "@agm/core": "1.0.0-beta.1", 
    "@angular/animations": "4.4.6", 
    "@angular/cdk": "2.0.0-beta.12", 
    "@angular/common": "4.4.6", 
    "@angular/compiler": "4.4.6", 
    "@angular/compiler-cli": "4.4.6", 
    "@angular/core": "4.4.6", 
    "@angular/flex-layout": "2.0.0-beta.9", 
    "@angular/forms": "4.4.6", 
    "@angular/http": "4.4.6", 
    "@angular/material": "2.0.0-beta.12", 
    "@angular/platform-browser": "4.4.6", 
    "@angular/platform-browser-dynamic": "4.4.6", 
    "@angular/platform-server": "4.4.6", 
    "@angular/router": "4.4.6", 
    "@ngx-translate/core": "8.0.0", 
    "@ngx-translate/http-loader": "2.0.0", 
    "@types/node": "8.0.47", 
    "angular-meteor": "1.3.12", 
    "angular2-meteor-polyfills": "0.2.0", 
    "angulartics2": "3.2.0", 
    "babel-runtime": "6.26.0", 
    "base-64": "0.1.0", 
    "bcrypt": "^1.0.3", 
    "core-js": "2.5.1", 
    "font-awesome": "4.7.0", 
    "gm": "1.23.0", 
    "google-material-color": "1.3.1", 
    "hammerjs": "2.0.8", 
    "jquery": "3.2.1", 
    "jspdf": "1.3.5", 
    "md5": "2.2.1", 
    "meteor-node-stubs": "0.3.2", 
    "meteor-rxjs": "0.4.8", 
    "meteor-typings": "1.4.1", 
    "microtime": "2.1.6", 
    "ng2-page-scroll": "4.0.0-beta.12", 
    "prismjs": "1.8.3", 
    "qrious": "4.0.2", 
    "reflect-metadata": "0.1.10", 
    "rxjs": "5.5.2", 
    "spawn-sync": "1.0.15", 
    "thread-sleep": "2.0.0", 
    "try-thread-sleep": "1.0.2", 
    "ts-helpers": "1.1.2", 
    "typescript": "2.5.3", 
    "typescript-collections": "1.2.5", 
    "zone.js": "0.8.18" 
    }, 
    "devDependencies": { 
    "@types/chai": "4.0.4", 
    "@types/hammerjs": "2.0.35", 
    "@types/highcharts": "5.0.9", 
    "@types/jasmine": "2.6.2", 
    "@types/meteor": "1.4.12", 
    "@types/mocha": "2.2.44", 
    "@types/prismjs": "1.6.5", 
    "autoprefixer": "7.1.6", 
    "awesome-typescript-loader": "3.2.3", 
    "chai": "4.1.2", 
    "chai-spies": "0.7.1", 
    "codelyzer": "3.2.2", 
    "jasmine-core": "2.8.0", 
    "jasmine-spec-reporter": "4.2.1", 
    "node-sass": "4.5.3", 
    "protractor": "5.2.0", 
    "ts-node": "3.3.0", 
    "tslint": "5.8.0" 
    } 
} 

는 내가 도움을 주셔서 감사합니다. 문안 인사!

답변

0

새로운 버전의 각 컴파일러가 릴리즈되었습니다. 새로운 버전의 컴파일러가 NodeJS의 CommonJS 구문에 ES2015 가져 오기 구문을 전달합니다. 이 컴파일러를 사용하면 Meteor meteor update --all-packages을 업데이트하면 제대로 작동하도록 모듈 또는 ecmascript 패키지를 사용해야합니다. angular-meteor GitHub 저장소에서 몇 가지 작업 예제를 볼 수 있습니다.

+0

각도 컴파일러를 @ 0.2.8_1, angular-html-compiler @ 0.2.8, angular-scss-compiler @ 0.2.8, angular-t ypescript-compiler @ 0.2.8_1' 오류가 계속 발생합니다. –

+0

@LeonardoEspinosa 작은 복제물을 추가 할 수 있습니까? – Urigo

+1

@Urigo TranslateModule이 app.module.ts에 포함되어 있으면 응용 프로그램 서버 번들이 실패합니다. 제거되면 제대로 작동합니다. [link] (https://github.com/leonardoespinosa/angular-compiler-test/tree/master)에 예제를 만들었습니다. 다른 ngx-translate 릴리스로 시도하고 오류가 계속됩니다. –

0

문제는 노드 나던 지원 아직 is6 수입 (here you have an article that explains it)이며, 파일이 서버 번들, 프로젝트에 Uncaught SyntaxError: Unexpected token import.

가져 오기 모듈이 NGX-번역 오류를 (버전 8.0.0)를 생산하고

import { Directive, ElementRef, Input, ChangeDetectorRef } from '@angular/core'; 
import { equals, isDefined } from './util'; 
import { TranslateService } from './translate.service'; 

var TranslateDirective = (function() { 
    function TranslateDirective(translateService, element, _ref) { 
     var _this = this; 
     this.translateService = translateService; 
     this.element = element; 
     ...... 
     ...... 

을 그리고 bundle/programs/server/npm/node_modules/@ngx-translate/core/src의 수입은 같은 방식으로 있습니다 : 그것은 다음과 같은 방법으로 NGX-변환 코드를 삽입/프로그램/서버/패키지/modules.js 번들. 그것이 문제이다.

ngx-translate의 문제를 해결하려면 9.0.0 릴리스를 사용하고 문제가 해결됩니다.

그러나 다른 npm 모듈은 같은 문제를 나타냅니다. Uncaught SyntaxError: Unexpected token import (모듈은 commonjs에 번들을 만들어야하는데, 이것은 각도 유성 문제가 아닙니다.) 프로젝트에서

:

  1. npm install --save babel-cli babel-preset-es2015
  2. 는 NPM 스크립트를 추가 (동일한 문제를 제시하는 것을 내가 NGX-페이지 스크롤 사용하는 예를 들어)이 방법은 같은 바벨이 문제를 해결할 수 패키지."스크립트"범위에서 JSON

"compile_ngx-page-scroll": "babel node_modules/ngx-page-scroll -d node_modules/ngx-page-scroll --presets es2015"

  • 실행 JS 대상 파일을 컴파일 의존성
  • 실행 npm run compile_ngx-page-scroll과 바벨을 설치
  • 실행 npm install
      당신의 서버가 있어야하고 작동해야합니다