2016-11-03 22 views
8

Tôi đang cố gắng chuyển đổi một Ứng dụng đã hoạt động với các mô-đun được nạp Lười biếng vào AOT. Tôi đang sử dụng bộ công cụ @ ngtools/webpack để biên dịch mã AOT, tuy nhiên tôi gặp phải một lỗi mà Angular không thể tìm thấy mã của mô-đun nạp Lazy như nó có vẻ.Angular2 AOT với tải Lười biếng Không thể giải quyết [đường dẫn đến mô-đun lười] .ngfactory.ts

ERROR in ./src/ngfactory async 
Module not found: Error: Can't resolve '/Library/WebServer/Documents/envato-teams/src/ngfactory/src/app/components/container/projects.ngfactory.ts' in '/Library/WebServer/Documents/envato-teams/src/ngfactory' 
@ ./src/ngfactory async 
@ ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js 
@ ./src/ngfactory/src/app/app.module.ngfactory.ts 
@ ./src/main.aot.ts 
@ multi main 

đề cập Worth trong định nghĩa tuyến ứng dụng của tôi mô-đun của dự án này được nạp một cách lười biếng:

{ 
    path: 'projects', loadChildren: './components/container/projects#ProjectModule' 
}, 

Đây là cách thiết lập của tôi trông giống như:

tsconfig:

... 
"angularCompilerOptions": { 
    "genDir": "./src/ngfactory", 
    "entryModule": "src/app/app.module#AppModule" 
} 
... 

Webpack :

new ngtools.AotPlugin({ 
    tsConfigPath: './tsconfig.aot.json', 
}), 

Main.aot.ts

/* 
* Providers provided by Angular 
*/ 
import { platformBrowser } from '@angular/platform-browser'; 
import { AppModuleNgFactory } from './ngfactory/src/app/app.module.ngfactory'; 

import { Servicesconfig } from './app/services/index'; 

platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 

Trong webpack Tôi đang biên soạn file ts với @ ngtools/Webpack bằng cách thực hiện:

// Support for .ts files. 
{ 
    test: /\.ts$/, 
    loaders: ['@ngtools/webpack'], 
    exclude: [/\.(spec|e2e)\.ts$/] 
}, 

Cảm ơn bạn đã giúp đỡ của bạn!

+0

Có vấn đề này rất giống nhau ... cho đến nay, không tìm thấy sửa chữa ... – user2363245

+1

câu trả lời tôi nhận được tại thời điểm trong angel gitter chanel là AOT và tải lười không chơi tốt với nhau. Nó sẽ được sửa ngay sau khi https://github.com/angular/angular-cli/commit/88131a08fd39eab5fc49dfce952207ee826bc8ef Chưa hợp nhất nhưng sẽ sớm được phát hành và hoạt động trong @ ngtools/webpack –

Trả lời

8

Tôi đã đấu tranh bản thân mình với các mô-đun tải AOT và Lazy.

Chọn một hoặc loại kia không thực sự là một tùy chọn để xây dựng sản phẩm.

Thậm chí tho tôi thực sự cần những tính năng đó cùng nhau, tôi không thể nhận được chúng và phải từ bỏ. Cho đến ngày nay !

angular-cli đã phát hành hai ngày trước: 1.0.0-beta.21 trong đó hỗ trợ AOT và tải Lười biếng!

Trong dự án góc-cli của bạn:

npm cache clean 
npm install --save-dev [email protected] 
ng init 

Thưởng thức!

PS: Rất cảm ơn nhóm angular-cli đã tạo nên một tác phẩm tuyệt vời ở đây ...!

EDIT:
tôi đã làm một số tiêu chuẩn:

+-----------------------+-------------+--------------+-----------+-------------+ 
|      | Main bundle | Chunk 0 | Scripting | First paint | 
+-----------------------+-------------+--------------+-----------+-------------+ 
| ng serve    | 4.5 MB  | Not splitted | 6075 ms | 5500+ ms | 
| ng serve --prod  | 334 KB  | Not splitted | 5587 ms | 4750+ ms | 
| ng serve --aot  | 3.3 MB  | 326 KB  | 4011 ms | 4400+ ms | 
| ng serve --prod --aot | 243 KB  | 18.1 Kb  | 3860 ms | 4250+ ms | 
+-----------------------+-------------+--------------+-----------+-------------+ 

(kết quả không siêu tốt vì tôi có rất nhiều thứ mở và 3 màn hình và máy tính xách tay của tôi là đau đớn^__ ^) .

Đây là những gì chúng ta có thể nhớ từ đó:
- Các --prod --aot xây dựng kích thước nhỏ hơn --prod build
27% - Các --prod --aot xây dựng nhanh khi kịch bản hơn --prod build
31% - AOT thật tuyệt!
- Có thể có lỗi mà không có cờ aot vì trừ khi tôi bỏ lỡ thứ gì đó, tôi không thể tìm thấy đoạn tải được tải xuống mà tôi mong đợi và tôi đã tìm thấy mã được nạp lười vào gói chính. Tôi đã mở một số issue trên Github.

+0

Cảm ơn vì điều này. mọi suy nghĩ đều hiệu quả đối với tôi, ngay cả các mô-đun được nạp lười cũng đang được nạp như mong đợi. – Manish

+0

AOT và tải chậm hoạt động tốt ngay bây giờ nếu bạn sử dụng gói https://www.npmjs.com/package/@ngtools/webpack như tôi đã đề cập trong một nhận xét trước, điều này đã được sửa vào thời điểm tôi đăng câu hỏi. –

+0

Bạn có thể cho tôi biết nếu vẫn cần phải làm theo các bước cấu hình được nêu trong Sách hướng dẫn góc: [link] (https://angular.io/docs/ts/latest/cookbook/aot-compiler.html#!#overview) ? Tôi vẫn cần phải xây dựng, khởi động các nhà máy mô-đun? Bạn có sử dụng một tsconfig riêng biệt, aot? Nó trông giống như cho một dự án cli mới mà ng build --prod tạo ra cùng kích thước như ng build --prod --aot. Tôi sử dụng beta.30 cho cli và angular 2.4.7. Cảm ơn tất cả các thông tin tuyệt vời. – Ibanez0

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