2016-01-20 14 views
6

Tôi đang sử dụng angularjs và typescript để tạo ra một số ứng dụng, tôi đang gặp một rắc rối với lỗi này mà tôi không thể giải quyếtcủa router ReferenceError: kim ngạch xuất khẩu không được định nghĩa và yêu cầu

Đây là * .ts mã của tôi

export var NgApp = new application.Startup(); 

///<reference path="../../../../../typings/tsd.d.ts"/> 
import {NgApp} from "../../bootstrap"; 



module views.components.home { 
    export class HomeComponent { 
     public constructor() { 
     } 

     public static factory():Function[] { 
      return [ 
       () => new HomeComponent() 
      ] 
     } 

    } 

} 

NgApp.registerComponents(views.components.home,() => this.app.controller); 

Đây là của tôi nhiệm vụ Gulp

let tsResult = gulp.src('src/**/*.ts').pipe(ts({ 
    module: 'commonjs', 
    sourceMap: true 
})); 

let taskTs = tsResult.js.pipe(gulp.dest('built/')); 

Đây là lỗi của tôi: của router ReferenceError: kim ngạch xuất khẩu không được định nghĩa

Câu hỏi đặt ra là: Làm thế nào tôi có thể sử dụng nhập khẩu như es6 trong bản đánh máy? Những gì tôi đang mất tích?

+1

Cố gắng biên dịch với mô-đun: "amd" – Amid

+0

@Amid không, nó không giúp được – IamStalker

+0

Tôi giả sử bạn có liên kết đến system.js trên trang web của mình. Bạn cũng có thể thử biên dịch với mô-đun: hệ thống như được nêu trong hướng dẫn nhanh angular2. – Amid

Trả lời

10

tôi sử dụng góc 1.6 và webpack, nó hoạt động đứng về phía tôi khi tôi thay đổi các mô-đun để "UMD"

UMD: Universal Module Definition This has brought about the push for a “universal” pattern that supports both styles (AMD and CommonJS)

reference: http://davidbcalhoun.com/2014/what-is-amd-commonjs-and-umd/

dán ở đây là tsconfig.json của tôi sau khi tôi thay đổi nó, tôi chạy $ tsc

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "umd", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ "es2015", "dom" ], 
    "noImplicitAny": true, 
    "removeComments": true, 
    "preserveConstEnums": true, 
    "allowUnreachableCode": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

sau đó của tôi "xuất khẩu không được định nghĩa" lỗi đã biến mất.

0

How can I use import like es6 in typescript? What I am missing?

Bạn cần sử dụng trình tải mô-đun. Đây là mẫu sử dụng webpack: https://github.com/AngularClass/angular2-webpack-starter

+0

xin lỗi bạn đời Tôi sử dụng angularjs 1.5 và thực sự không thực sự quen thuộc với webpack, tôi có thể sử dụng systemjs với khả năng tương tự để tải các mô-đun? – IamStalker

+0

Bạn có thể. Nhưng nó là nhiều hơn nữa chảy máu cạnh (và không cần thiết cho tôi như webpack đã làm tất cả mọi thứ tôi cần nó) – basarat

2

click here "Đã giải quyết cuối cùng" tôi cũng gặp lỗi tương tự. Tôi đã thay đổi mô-đun: "commonjs" thành "module": "es6", vì nhắm mục tiêu ES5 xóa các báo cáo nhập/xuất, vì vậy những công cụ này không thể loại bỏ các xuất khẩu không sử dụng.

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "es6", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ "es2015", "dom" ], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    } 

} 
Các vấn đề liên quan