Tôi đang viết thư viện Angular2 bằng Angular2 RC6.Angular2, lỗi siêu dữ liệu khi mô-đun tính năng biên dịch trước
Thư viện này chứa một mô-đun duy nhất:
import { Component, OnInit, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'yeva',
template: '<div></div>'
})
export class YevaComponent {
constructor() { }
}
@NgModule({
imports: [CommonModule],
declarations: [YevaComponent],
providers: [],
exports: [YevaComponent]
})
export class YevaModule {
}
Nếu tôi sao chép dán mã này vào một tập tin bản sao vào một ứng dụng Angular2 hiện có, và cố gắng sử dụng mô-đun này trực tiếp, nó hoạt động một cách hoàn hảo ...
Nhưng mục tiêu của tôi ở đây là xây dựng thư viện npm bên ngoài.
Nếu tôi di chuyển mã chính xác cùng này trong một dự án độc lập:
https://github.com/ClementVidal/starter.yeva
(Dự án này được cấu hình để được sử dụng như một thư viện Angular2, nơi nó được biên dịch sử dụng bản sao vào để được tiêu thụ bởi các ứng dụng khách hàng của tôi)
tôi nhận được lỗi sau:.
giá trị bất ngờ 'YevaModule' importe d bởi module 'AppModule'
Dưới đây là cách tôi import module của tôi trong cả hai trường hợp:
@NgModule({
imports: [BrowserModule,YevaModule],
declarations: [AppComponent],
providers: [
FOUNDATION_PROVIDERS
],
bootstrap: [AppComponent]
})
export class AppModule {
}
Lỗi này xuất phát từ trình biên dịch kiễu góc:
var importedMeta = _this.getNgModuleMetadata(importedModuleType, false);
if (importedMeta === null) {
throw new Error("Unexpected " + _this._getTypeDescriptor(importedType) + " '" + stringify(importedType) + "' imported by the module '" + stringify(moduleType) + "'");
}
Dường như mô-đun của tôi , khi được nhập dưới dạng mô-đun được biên dịch trước không chứa bất kỳ Siêu dữ liệu nào.
Tôi đã cố gắng để con số này ra bằng cách nhìn vào mã biên dịch, nhưng tôi đã không tìm thấy bất cứ điều gì ...
Sau đây là cách để tái tạo lỗi này:
mkdir test-metadata
cd test-metadata
git clone [email protected]:ClementVidal/starter.yeva.git
git clone [email protected]:ClementVidal/starter.themba.git
cd starter.yeva
npm install
sudo npm link
cd ../starter.themba
git checkout module-metadata
sudo npm link __TITLE__
npm install
npm run server
Sau đó, duyệt đến http://localhost:8080/
Có ai trong số các bạn đã thử nghiệm loại sự cố này không?
tôi đã không cố gắng đó. Tôi sẽ kiểm tra điều đó! Cảm ơn – Clement