ãã®åé¡ã¯ããã±ãŒãž@angular / language-serviceãåå ã§çºçããŸã
AngularèšèªãµãŒãã¹ã¯ãIvyã§æ§ç¯ãããã©ã€ãã©ãªã®ã³ã³ããŒãã³ããèªèããŸããã
ã¢ããªã±ãŒã·ã§ã³ã¯æ£ããæ§ç¯ãããŠããŸãã
'lib-component' is not a known element:
1. If 'lib-component' is an Angular component, then verify that it is part of this module.
2. If 'lib-component' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.ng(0)
Editor: VisualStudio Code
Editor extension: angular.ng-template v0.900.0
Angular CLI: 9.0.0-rc.5
Node: 10.17.0
OS: darwin x64
Angular: 9.0.0-rc.5
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.900.0-rc.5
@angular-devkit/build-angular 0.900.0-rc.5
@angular-devkit/build-ng-packagr 0.900.0-rc.5
@angular-devkit/build-optimizer 0.900.0-rc.5
@angular-devkit/build-webpack 0.900.0-rc.5
@angular-devkit/core 9.0.0-rc.5
@angular-devkit/schematics 9.0.0-rc.5
@angular/cdk 9.0.0-rc.4
@ngtools/webpack 9.0.0-rc.5
@schematics/angular 9.0.0-rc.5
@schematics/update 0.900.0-rc.5
ng-packagr 9.0.0-rc.3
rxjs 6.5.3
typescript 3.6.4
webpack 4.41.2
æŽæ°ã Ivyã³ã³ãã€ã©ã¯project_root/dist/lib-name
ãã¡ã€ã«lib-name.metadata.json
ãäœæããŸããã
ãããåé¡ã§ããããïŒ
+1åãåé¡ããããŸã
ããŒãžã§ã³9以éã§ã¯ãIvyã³ã³ãã€ã©ã䜿çšããããã«èšèªãµãŒãã¹ã®å
éšãåãæ¿ããŸãã ãããŸã§ã¯ãèšèªãµãŒãã¹ã¯metadata.json
ã«äŸåããŠãã£ã¬ã¯ãã£ãã«é¢ããè¿œå æ
å ±ãååŸããå¿
èŠããããŸããã
ã¯ãããããåé¡ã§ãã åœé¢è§£æ±ºããã«ã¯ãtsconfigã«"enableIvy": false
ãå«ãã©ã€ãã©ãªã®prodããŒãžã§ã³ããã«ãããå¿
èŠããããŸãã ããã«ãããdistãã©ã«ããŒã«å¿
èŠãªã¡ã¿ããŒã¿ãã¡ã€ã«ãçæãããŸãã
ã€ãŸãng build lib-component --prod
ãã ããvs-codeããã«ããããã³ã«ãå¿
ãRestart Angular Language service
ã«ããå¿
èŠããããŸãã
ãã®ãã¹ãŠã®æ å ±ã¯ãvs-codeãã©ã°ã€ã³ãšangularèªäœã®éã§ç°¡åã«èŠã€ããããšã¯ã§ããŸããã ãã®åãåé¡ãçµéšããŠããä»ã®äººã«æ³šæããŠãã ããã
ç§ã®ä»®å®
åé¿çng build lib-component --prod
ã«é¢ãã@jiversonã¯ããšã©ãŒAn unhandled exception occurred: Configuration 'production' is not set in the workspace.
ãçæããã©ã€ãã©ãªã®--prodãã©ã°ãé¢é£ããªããªã£ããšãã蚌æ ãä»ã®å Žæã§èŠãŸããã ç§ã¯@angular / cli v8.3.25ã䜿çšããŠããŸããããã®åé¡ã¯ïŒ665ã®éè€ã®å¯èœæ§ããããšèšãããŠããŸããããããæ£ãããã©ããã¯ããããŸããã äœããæèŠã¯ïŒ / cc @ayazhafiz
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ ç§ãã¡ã¯ç¬èªã®ã©ã€ãã©ãªãéçºããprodã§ãivyã§å ¬éããŠããŸãã
èšèªãµãŒãã¹ãIvyããã¯ãšã³ãã«ç§»è¡ããäœæ¥ãé²è¡äžã§ãïŒ
ããªãããããããªãã°ãç§ã¯ããã確èªããããšãã§ããŸãïŒ
ng build my-library --prod
ã©ã€ãã©ãªããã«ãããã¿ã€ãã 'xyz'ã¯æ¢ç¥ã®èŠçŽ ã§ã¯ãããŸãããã®ãšã©ãŒã¯ãã©ã€ãã©ãªã®èŠªãããžã§ã¯ãããåé€ãããŸãã
ç§ãç解ããããã«ãããã¯--prod
ãïŒãšãããïŒ dist
ãã©ã«ããŒã«my-library.metadata.json
ãã¡ã€ã«ãçæããèšèªãµãŒããŒãå®çŸ©ãããã³ã³ããŒãã³ãã»ã¬ã¯ã¿ãŒãèªèããããã«äœ¿çšããããã§ãã my-libraryã§ã
ããŠã ng build my-library --prod
æ§ç¯ãããnpm publish
ã©ã€ãã©ãªãä»ã®Angularã¢ããªã«npm install
ãããšãèšèªãµãŒããŒã¯ã€ã³ã¹ããŒã«ãããŠããã¡ã¿ããŒã¿ãã¡ã€ã«ãèŠããšäºæ³ãããŸãã npmããã±ãŒãžïŒ node_modules
ãã©ã«ããŒå
ïŒã§ãããã 'xyz'ã¯æ¢ç¥ã®èŠçŽ ã§ã¯ãããŸããããšã¯å ±åããŸããã
ããããããã¯æåŸ
éãã«åäœããŠããªããšç§ã¯æã£ãŠãããããžã§ã¯ãã§åããšã©ãŒãèŠãããšãã§ããŸãnpm install
node_modulesã§ç§ã®ã©ã€ãã©ãªãã©ã«ãå
ã®ã¡ã¿ããŒã¿JSONãã¡ã€ã«ãååšããŠããŠããç§ã®ã©ã€ãã©ãªãç·šã
ããã¯ããã®åé¡ãšåããã°ã§ããããããšãå¥ã®ãã°ã§ããïŒ
ãŸãã¯ãæŒãããŒãèšèªãµãŒããŒã«äžããã³ãã³ãã®éæ³ã®çµã¿åãããä»ã«ããã®ã§ã npm install
ed Angularã©ã€ãã©ãªãæ£ããåŠçã§ããŸããïŒ
Ivyãæ©èœããŠããæ°ããæ¹æ³ã¯ãmetadat.jsonãã¡ã€ã«ããã§ã¯ãªãã.d.tsãã¡ã€ã«ããã®ã¡ã¿ããŒã¿ã«äŸåããããšã§ããããã§ãã --prodãã«ããæ©èœããå¯äžã®çç±ã¯ãtsconfigãenableIvyãfalseã«èšå®ããŠããããã§ãïŒnpmã§å ¬éãããã©ã€ãã©ãªã®angularã§æšå¥šãããŠããŸãïŒã å ¬éãããã©ã€ãã©ãªã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãã«ãã¯Ivyã®æç¡ã«ãããããåé¡ãªãæ©èœãããããããã¯èšèªãµãŒãã¹ã®åé¡ã§ãããè§åºŠã®ããcliã®åé¡ã§ã¯ãããŸããã
åé¡ã¯2ã€ãããŸãã
ãªããããéåžžã«åä»ãªåé¡ãªã®ã§ããïŒ
ãããç§ããã®åé¡ãåé¿ããããã«ãã£ãããšã§ããããã¯åãç¶æ³äžã§äžéšã®äººã ã«åãå ¥ãããããããããŸããã å ¬éå¯èœãªã©ã€ãã©ãªããã®ãããªã©ã€ãã©ãªã®ãŠãŒã¶ãŒãšåãæ¡ä»¶äžã§ïŒã€ãŸããå ¬éãããnpmããã±ãŒãžããïŒäœ¿çšããã人ã«ã¯åœ¹ç«ã¡ãŸããã
å ¬éå¯èœãªã©ã€ãã©ãªã®ãœãŒã¹ã³ãŒãã«ãããã䜿çšããã¢ããªã±ãŒã·ã§ã³ãäžè²«ããæ¹æ³ã§ã¢ã¯ã»ã¹ã§ããã¢ãã¬ããŸãã¯åæ§ã®æ§é ã䜿çšããŠãããšä»®å®ããŸãã
ããã±ãŒãžããhappy-libraryããšåŒã°ããŠãããšä»®å®ããŸããã...
tsconfig.json
ãæŽæ°ããŠïŒãŸãã¯vscodeããããç解ããªã...ïŒãããã±ãŒãžã®ãœãŒã¹ãã£ã¬ã¯ããªãæããã¹ãããã³ã°ããã®ããã±ãŒãžã«è¿œå ããŸããimport {whatever} from 'happy-library';
"paths": {
"happy-library": ["libs/happy-library/src/index.ts"]
}
å®ç§ã§ã¯ãããŸããããå°ãªããšãç§ãäœæãããšã³ãããŒãšã³ãã®Ivyã¢ããªã±ãŒã·ã§ã³ã§ãvscodeã®ãšã©ãŒãªãã«èªåã®ã©ã€ãã©ãªã䜿çšããªãããæãå ±æããŠä»ã®ãŠãŒã¶ãŒã®ããã«NPMã«å ¬éããããšãã§ããŸããåžžã«yarn / npmãªã³ã¯ãäœæããALSãæ©èœããªãçç±ããããã°ããå¿ èŠã¯ãããŸããã
ç§ãäœããéãããããããªããªãã°ããã£ãŒãããã¯ã«èå³ããããŸã...
PSïŒ httpsïŒ//github.com/abdes/happy-codingã§ãã®ã¡ãœããã䜿çšããŠå®å šã«æ©èœãããªããžããª
ããã«ã€ããŠã¯é²å±ããããŸãããã
ããã¯ã11æã«äºå®ãããŠããAngular11ã§ã®ããŒã¿ãã¹ãã«å©çšã§ããããã§ãã
https://github.com/angular/vscode-ng-language-service/issues/335#issuecomment-693545000ãåç §ããŠ
ç§ã¯èªåã®ãããžã§ã¯ãã§Angular11ãå®è¡ããŠããŸãïŒã©ã€ãã©ãªãAngular 11ã§ãã«ãããã-prodãã©ã°ãä»ããŠããŸãïŒã ãŸãã ã©ã€ãã©ãªãGitlabããã±ãŒãžã§å
¬éããŸãããã npm install
ããŠãããžã§ã¯ãã«ã€ã³ã¹ããŒã«ãããšãAngular LanguageServiceã¯ã©ã€ãã©ãªãããšã¯ã¹ããŒããããã³ã³ããŒãã³ããèªèããŸããã éåžžã«é·ãéåé¡ã«ãªã£ãŠããããã§ããããã€è§£æ±ºããããšæåŸ
ã§ããŸããïŒ
ãšããããVSCodeæ¡åŒµæ©èœãåé€ããããšã«ãªããšæããŸãããããã ãã§åŒ·åãªéçºã倱ãããšã«ãªããŸã...
@schankam ïŒ https ïŒ
@JonWallstenããããšãããããŸããããç解ã§ããã°ãŸããªããªãªãŒã¹ãããŸã
ããã¯ã v11.1.0ã§ãªãªãŒã¹ãããæ°ããIvy-nativeèšèªãµãŒãã¹ã«ãã£ãŠä¿®æ£ãã
çŽ æŽãããä»äºã@ kyliauïŒ
å³å¯ãªnullãã§ãã¯ã«é¢ããŠã¯ããã³ãã¬ãŒãã«å€ãã®æ°ãããšã©ãŒããããèŠéããŠããŸããŸãããæ¬åœã«çŽ æŽãããã§ãã
@kyliauããŒã...ããã¯å€ã ã ã©ã€ãã©ãªã§å®£èšããããã£ã¬ã¯ãã£ãã§ãŸã£ããåãåé¡ãçºçããŠããŸãããã-prodã¹ã€ããã䜿çšããŠã©ã€ãã©ãªãæ§ç¯ãããšããææ¡ã«åŸã£ãŠåé¡ã解決ããŸããã ç§ã¯ãã§ã«ALS11.1.1ã䜿çšããŠããã®ã§ãçè«çã«ã¯ããã¯ããåé¡ã«ãªãå¿
èŠã¯ãããŸããããïŒ
ãã®ãããžã§ã¯ãã¯éåžžã®CLIãã«ããããžã§ã¯ãã§ãããããã€ãã®ã©ã€ãã©ãªãšã¢ããªãå«ãŸããŠããŸãã
npmã®ãªã³ã¯ã«ã€ããŠã¯ããããããŸãã...ç§ã¯ç¹å¥ãªããšã¯äœãããŸããã§ããã ã©ã€ãã©ãªã®ãã¹ã¯ãã«ãŒãtsconfig.jsonã«ãªã¹ããããŠããŸãã
åãåé¡ããããŸãã --prod
ãã©ã°ã䜿çšããŠã©ã€ãã©ãªããã«ããããã¿ãç¡å¹ã«ãªãããã«ããŸãã
ã©ã€ãã©ãªã®distãã©ã«ããŒããªã³ã¯ããããã±ãŒãžãã¢ããªã«ãªã³ã¯ããŠãlibmoduleãã€ã³ããŒãããŸããã ããããããã§ããã®ãšã©ãŒãçºçããŸããããã¯ãæ¢ç¥ã®è§åºŠèŠçŽ ã§ã¯ãªããšããããšã§ãã
libã®ã³ã³ããŒãã³ãã¯ã declarations
ãšexports
é
åã«ãããŸãã
ã³ã³ããŒãã³ãã¯è¡šç€ºãããŸãããvscodeã§ãã®ãšã©ãŒãçºçããŸãã ãã¹ãæžã¿ããŒãžã§ã³ïŒ
11.1.3
11.2.1
0.1100.4
ç§ã¯åæããŸããããã¯ãããã@kyliauã§éããããã¹ãã§ã¯ãããŸãã...ç§ã¯ãããå®èšŒããã®ã«åœ¹ç«ã€ãããããªãå¥ã®åé¡ã®ããã«ç§ãäœã£ãæå°éã®åçŸå¯èœãªäŸãæã£ãŠããŸãã ãããèŠãŠãã ããïŒ //github.com/vicatcu/monorepo-example-error ïŒå ã ã¯ãã®SOæçš¿ã«é¢é£ããŠæçš¿ãããŸããïŒ
ç§ã®äŸã®ãªããžããªã®ãã®ãã©ã³ãã§è¡ã£ãtsconfig.lib.json
ã®angularCompilerOptions
äžã«"enableIvy": false
ãªãã·ã§ã³ãè¿œå ãããšããã®ã³ã¡ã³ããé©åã«ãªããŸãã ãç§ã®ãšã©ãŒã¯vscodeã§æ¶ããŸãïŒç§ã®ãµã³ãã«ãããžã§ã¯ãããŸã ç解ã§ããªãäœããã®æ¹æ³ã§å£ããŠããããšãèªããŸããïŒ
æ確ã«ããããã«ã v11.1.x
ã䜿çšããã ãã§ã¯äžååã§ãããŸãã
tsconfig.*.json
ãå€æŽããå¿
èŠã¯ãããŸããã
... is not a known angular element
ã衚瀺ããããšããäºå®ã¯ãã¢ã€ããŒã¢ãŒãã§ã¯ãªãããšãæå³ããŸãã
çŸåšäœ¿çšããŠããã¢ãŒãã確èªããã«ã¯ã Output
ããã«ã«ç§»åããAngularèšèªãµãŒãã¹ãæ¢ããŸãã ã¢ã€ããŒã«ã€ããŠèšåããå¿
èŠããããŸãã ïŒäžã®ã¹ã¯ãªãŒã³ã·ã§ãããåç
§ïŒã
IvyèšèªãµãŒãã¹ã䜿çšããããã«ãããžã§ã¯ãã§Ivyã䜿çšããå¿
èŠã¯ãããŸããããAngular> = v9ã䜿çšããå¿
èŠããããŸãã
äžèšã®ãã¹ãŠã確èªããŠãæ¡åŒµæ©èœãæåŸ ã©ããã«æ©èœããªãå Žåã¯ãæ°ããåé¡ãéããŠãããªã¢ãŒãžãšãã€ãºã®åæžã«åœ¹ç«ãŠãŠãã ããã ã©ããããããšãããããŸããïŒ
@kyliauããããšãç§ã¯ã確ãã«ãããèŠéããŠããŸããã
æãåèã«ãªãã³ã¡ã³ã
ããã«ã€ããŠã¯é²å±ããããŸãããã