Nói rằng tôi có một foo.ts và app.ts như sau:sử dụng systemjs trên Node.js (& góc 2)
foo.ts:
export interface Foo {
id: number;
label: string;
};
app.ts:
import {Foo} from './foo'
var myfoo: Foo = { "id": 1, "label": "One" };
console.log(JSON.stringify(myfoo));
Sau khi biên dịch, thực hiện 'node app.js'
từ dòng lệnh chạy như mong đợi nếu tôi sử dụng "module"="commonjs"
trong tsconfig.json
của tôi. Cắt theo đuổi, điều tôi muốn làm là sử dụng giao diện phía máy khách Foo
với Angular 2 và phía máy chủ có nút. Vô tình, sự khởi đầu nhanh chóng 2 Tôi đang làm người mẫu trên here muốn "module"="system"
trong tsconfig.json
. Cấu hình này gây ra một lỗi khi cố gắng chạy 'node app.js'
:
System.register([], function(exports_1) {
^
ReferenceError: System is not defined`
Tôi đã thử làm theo các hướng dẫn sử dụng systemjs với nút trên github, nhưng vào thời điểm này tôi chỉ nghiền phím và có thể sử dụng một số giúp đỡ. Làm thế nào để (a) lấy mã app.ts của tôi chạy trên phía máy chủ bằng cách sử dụng systemjs, hoặc luân phiên, (b) có được Quickstart Angular 2 chạy với commonjs?
Bạn có chắc chắn bao gồm "system.js" trong html của mình không? Kiểm tra các công cụ dev của bạn để chắc chắn rằng tất cả các tệp javascript được tải. –
Đây là node.js ở phía máy chủ, chạy từ dòng lệnh. Client chạy tốt với system.js và hướng dẫn quickstart Angular 2. Ngoại trừ thay vì sử dụng lite-server như trong hướng dẫn, tôi đang sử dụng Node (+ Express) để phục vụ các trang (+ dịch vụ web). Nhưng tôi không thể có được "hệ thống" để làm việc trên mã phân loại máy chủ muốn chia sẻ giao diện Foo. Những gì tôi đang tìm kiếm là một ví dụ nút phía máy chủ kiểu chữ đơn giản sử dụng "hệ thống" thay vì "commonjs". – Ken
Để rõ ràng, mọi thứ hoạt động tốt nếu tôi viết phía máy chủ trong ES5 và javascript truyền thống. Nhưng tôi đang đánh một bức tường cố gắng chia sẻ mã lệnh trên cả máy khách và máy chủ, với tsc -p. trên toàn bộ dự án khách hàng & máy chủ. – Ken