Angular 2 rc 6
, typescript 2
, node 4.5.0
, npm 2.15.9
पर Windows 7
कोणीय 2 आगे के समय संकलक: क्या मुझे सभी वर्ग गुणों को सार्वजनिक बनाना चाहिए?
मैं से जस्ट-इन-टाइम स्थानांतरित करने के लिए कोशिश कर रहा हूँ करने के लिए आगे के-समय संकलन और मैं इन संसाधनों पर निर्भर कर रहा हूँ:
- Angular 2 - Ahead-of-time compilation how to
- https://github.com/angular/angular/tree/master/modules/@angular/compiler-cli#angular-template-compiler
मैं समझता हूँ कि मैं संकलक चलाने की आवश्यकता है कि फ़ाइलों को उत्पन्न करने के लिए, और मुझे को का उपयोग platformBrowserDynamic
के बजाय बूटस्ट्रैप में बदलने की आवश्यकता है। मैंने हालांकि एक रोडब्लॉक मारा है और नहीं पता कि कैसे आगे बढ़ना है।
1. मैंने पुष्टि की है कि ऐप जस्ट-इन-टाइम संकलन का उपयोग करके त्रुटियों के बिना चलता है। मेरे main.ts
है:
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
2. मैं अपने उत्पादन फ़ोल्डर से अपने सभी एप्लिकेशन फ़ाइलें साफ़ है, लेकिन 3 पार्टी पुस्तकालयों रख (जैसे: कोणीय 2, कोणीय 2 सामग्री)
3. मैं रन "node_modules/.bin/ngc" -p ./
यह कंसोल के लिए कोई आउटपुट नहीं चलाता है। मैं अपने .ts
घटकों और मॉड्यूल में से प्रत्येक के लिए .ngfactory.ts
फ़ाइल देखता हूं। मैं अपने .css
में से प्रत्येक के लिए .css.shim.ts
फ़ाइल भी देखता हूं जिसमें घटक शैलियों का आयोजन होता है। इसके अलावा, .js
और .js.map
फ़ाइलों transpiled किया गया है और उत्पादन निर्देशिका में रखा
4. अगर मैं इस बिंदु पर अनुप्रयोग चलाने के लिए प्रयास करते हैं, मुझे लगता है कि घटक टेम्पलेट्स आयोजित सभी .html
फ़ाइलों के लिए 404 not found
त्रुटियों को देखने
5. मैं मैन्युअल रूप से सभी टेम्पलेट फ़ाइलों (.html
) को उत्पादन डीआईआर में ले जाता हूं और ऐप चलाता हूं।
enableProdMode();
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
अपने स्वयं पर, यह कोई फर्क नहीं पड़ता: यह ठीक (compiler.umd.js
सहित 255 अनुरोधों,)
6. मैं बदल मेरी main.ts
को चलाता है, लेकिन यह अभी भी बस में समय संकलन का उपयोग करता है चूंकि नया कोड संकलित नहीं किया गया है। हालांकि, मुझे नहीं पता कि यहां से क्या करना है।
क्या मुझे ngc
फिर से चलाना चाहिए?
Error at C:/path/to/notify.component.ngfactory.ts:113:41: Property 'visible' is private and only accessible within class 'NotifyComponent'
... (many more like that with lots of properties from lots of components)
Compilation failed
का उपयोग कर करता है AOT संकलन का मतलब है कि मैं अपने सभी वर्ग गुण को सार्वजनिक करना चाहिए: यदि ऐसा है तो मैं प्रकार की त्रुटियों के बहुत सारे मिल सकता है? क्या मुझे एक कदम याद आ रहा है?
यही मैंने भी सोचा। इच्छा आयनिक दस्तावेज़ इस स्पष्ट को 'निजी परिवर्तनीय रूप से सार्वजनिक रूपांतरित करने' के रूप में स्पष्ट करते हैं – masimplo