Angular-cli: AOT ๋นŒ๋“œ ์‹คํŒจ

์— ๋งŒ๋“  2017๋…„ 07์›” 24์ผ  ยท  173์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/angular-cli

๋ฒ„๊ทธ ์‹ ๊ณ  ๋˜๋Š” ๊ธฐ๋Šฅ ์š”์ฒญ( x )

- [x] bug report -> please search issues before submitting
- [ ] feature request

๋ฒ„์ „.

    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / โ–ณ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/
@angular/cli: 1.2.3
node: 6.11.1
os: darwin x64
@angular/animations: 4.3.1
@angular/common: 4.3.1
@angular/compiler: 4.3.1
@angular/core: 4.3.1
@angular/forms: 4.3.1
@angular/http: 4.3.1
@angular/platform-browser: 4.3.1
@angular/platform-browser-dynamic: 4.3.1
@angular/router: 4.3.1
@angular/cli: 1.2.3
@angular/compiler-cli: 4.3.1
@angular/language-service: 4.3.1

์žฌํ˜„ ๋‹จ๊ณ„.

$ ng new hello
$ cd hello
$ ng build --prod

์‹คํŒจ๋กœ ์ธํ•œ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

$ ng build --prod
Hash: edf6fb3ccb1b82fa940c
Time: 10775ms
chunk    {0} polyfills.71b130084c52939ca448.bundle.js (polyfills) 177 kB {4} [initial] [rendered]
chunk    {1} main.e81f19d3f6b27a436c79.bundle.js (main) 1.09 kB {3} [initial] [rendered]
chunk    {2} styles.d41d8cd98f00b204e980.bundle.css (styles) 69 bytes {4} [initial] [rendered]
chunk    {3} vendor.f7457d5ac1e9743fd76f.bundle.js (vendor) 849 kB [initial] [rendered]
chunk    {4} inline.18e445e37a0efd4dcfa2.bundle.js (inline) 0 bytes [entry] [rendered]

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'hello/src'
 @ ./src/main.ts 3:0-74
 @ multi ./src/main.ts

์›ํ•˜๋Š” ๊ธฐ๋Šฅ.


ot ๋นŒ๋“œ ์‹คํ–‰

์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํƒ€ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.


์•„๋งˆ๋„ Enhanced-resolve 3.4.0์ด ์›์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/webpack/enhanced-resolve/issues/98

ng build --prod ๋Š” npm i [email protected] ์ดํ›„์— ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

0 (critical) non-obvious

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ  npm i [email protected] ํ›„์— AOT๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  173 ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๊ณ  npm i [email protected] ํ›„์— AOT๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ

@mchmielarski ์•„์ฃผ ์ข‹์€ ์ถ”์ธก์ด๋„ค์š” ๐Ÿ‘

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : npm install [email protected]

์†”๋ฃจ์…˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ์•„์นจ ๋‚ด๋‚ด ๋น„์šฉ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
[email protected] ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
[email protected] ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€!

[email protected]์ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์‹ ์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ ์ข…์ผ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

" [email protected] "์„ ์‚ฌ์šฉํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ Mac OS์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ Linux์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!? ๋ˆ„๊ตฌ๋“ ์ง€ ์ด ํ–‰๋™์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋ฅผ ์œ„ํ•ด ๋ฆฌ๋ˆ…์Šค ์šฐ๋ถ„ํˆฌ 16.04์—์„œ ์ž‘๋™

๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, Angular-Cli์— ๋Œ€ํ•ด ๊ณ ์ • ์ข…์†์„ฑ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์˜ ํ•˜์œ„ ์ข…์†์„ฑ์—๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์€ ๋ฐฑ๋งŒ ๋ฒˆ์งธ์ž…๋‹ˆ๋‹ค...

angular-cli ๋ฒ„์ „์€ ์ด๋ฏธ 1.3.1๋กœ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. Ubuntu Server์—์„œ [email protected] ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์นจ์˜ ์ฒ˜์Œ 2์‹œ๊ฐ„์„ RIPํ•ฉ๋‹ˆ๋‹ค.

3.3.0์—์„œ๋„ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ 3.4.1์—์„œ๋„ AOT์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ ์ค‘์— environment.ts๋Š” ์ ์ ˆํ•œ ํ™˜๊ฒฝ ํŒŒ์ผ๋กœ ๋ฎ์–ด์“ฐ์—ฌ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ชจ๋“  ๋นŒ๋“œ๋ฅผ ๊นจ๊ณ  ์˜ค๋Š˜ ๋†€๋ผ์šด ์žฌ๋ฏธ๋ฅผ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค! PLZ PLZ PLZ๋Š” ๊ณ ์ • ์ข…์†์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

[email protected] ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ์€ 3.3.0 ์—

์ƒˆ๋กœ ์„ค์น˜๋œ angular/cli 1.2.0์œผ๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค :(
์ €๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. npm install [email protected] ์€(๋Š”) ์ผ์‹œ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋กœ ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ์‹ ์„ ํ•œ ํ†ตํ•ด ๋ฐฐํฌ์™€ ํ•จ๊ป˜ ์„ค์น˜ npm install ์ด ์ข…์† ์„ธํŠธ package.json ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹คํ–‰ ์ค‘์ธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ „์ฒด ํ”„๋กœ๋•์…˜ ์„ค์ •์„ ์ค‘๋‹จ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์š” ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

Windows๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ณ  [email protected] ํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@mscherer82 npm install ์‹คํ–‰ํ•˜์…จ๋‚˜์š”? ๊ทธ๋ ‡๋‹ค๋ฉด node_modules ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

@angelnikolov ์˜ˆ, node_modules ์‚ญ์ œํ•˜๊ณ  ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ , npm ls ์‹คํ–‰ํ•ด๋ณด๊ณ  ์ด๊ฒƒ์ด enhanced-resolve ๋ฒ„์ „์ธ์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
+-- [email protected]

@pvanhemmen
npm ์„ค์น˜ ํ›„์— Enhanced-resolve๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ์‹œ์ ์ธ ํ•ด๊ฒฐ๋กœ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
image

@vicetjs ๊ทธ๊ฒƒ์ด ์ œ๊ฐ€ ํ•œ ์ผ์ด๋ฉฐ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋„์™€์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‚ด ๋นŒ๋“œ ์„œ๋ฒ„๋ฅผ ํ–‰๋ณตํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด angular/ngtools-webpack-builds๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  enhanced-resolve at 3.3.0 ๊ณ ์ •ํ•œ ๋‹ค์Œ angular/cli-builds ๊ฐ€ ๋‚ด ngtools ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋ถ„๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค package.json ๋ฅผ "@angular/cli": "github:benelliott/cli-builds#24a8837" ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋‘ ํŠน์ • ๋ฒ„์ „์ด ์•„๋‹ˆ๋ผ ๋งˆ์Šคํ„ฐ์— ์žˆ์Œ).

@pvanhemmen [email protected] ์„ค์น˜ ํ›„ npm shrinkwrap ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ ์„ค์น˜ํ•˜์—ฌ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚ด Jenkins ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์ด ๋‹ค์‹œ ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋˜ํ•œ ์—…์ŠคํŠธ๋ฆผ ์ข…์†์„ฑ ํŒŒ์†์ด ๋ฏธ๋ž˜์— ๋‚ด ํ”„๋กœ์ ํŠธ์— ํ•ด๋ฅผ ๋ผ์น˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. :)

@bmcswee ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, ํŒ

npm list ๊ฐ€) ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค:

+-- @angular/[email protected]
| +-- @ngtools/[email protected]
| +-- @ngtools/[email protected]
| | +-- [email protected]
...
| +-- [email protected]
...
| | +-- [email protected] deduped
...
+-- [email protected]

Enhanced-resolve 3.3.0์„ ์„ค์น˜ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

[email protected] ์ด ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด ํŒจํ‚ค์ง€์˜ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

https://github.com/angular/angular-cli/issues/4551 ๋ช‡ ๋‹ฌ ์ „ ํšŒ๊ท€.

@jakeNiemiec ์ด๊ฒƒ์€ ๋‚˜์ค‘์— Angular ํŒ€์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์‹œ์ ์— ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ?

๊ฑด๋ฐฐ!

์—ฌ๋Ÿฌ๋ถ„, [email protected] ์šฐํšŒ๊ฐ€ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@andreasonny83 ์ •ํ™•ํžˆ ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์…จ์Šต๋‹ˆ๊นŒ?

npm i [email protected]

Angular CLI์™€ Node๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆ ํ•˜์ž๋ฉด (
โŒํ•˜์ง€ ์ž‘์—… (์ด๊ฒƒ์€ ๋ฌด์—‡ ๊ฒƒ์ธ๊ฐ€ npm@^5 ๋‚ด์— ๋„ฃ์–ด package.json ๋‚ด๊ฐ€ ๋‹ฌ๋ฆด ๋•Œ npm i [email protected] ) :
"enhanced-resolve": "^3.3.0" ,
โœ… ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:
"enhanced-resolve": "3.3.0",

์•„๋ž˜ @Guston์˜ ์ž์„ธํ•œ ์„ค๋ช…์„ https://github.com/angular/angular-cli/issues/7113#issuecomment -317483817

jakeNiemiec ์˜๊ฒฌ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๊ณ„ํš๋œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

์ด๊ฒƒ์€ webpack ์˜ ์ข…์†์„ฑ enhanced-resolve ์˜ ๋ฒ„๊ทธ/์ค‘์š” ๋ณ€๊ฒฝ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด Webpack ์œ ์ง€ ๊ด€๋ฆฌ์ž์™€ ๋Œ€ํ™”๋ฅผ ์‹œ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•œํŽธ package.json "enhance-resolve": "3.3.0" ์— ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: enhanced-resolve ๋Š” https://github.com/webpack/enhanced-resolve/issues/98์ž…๋‹ˆ๋‹ค.

@filipesilva @ngtools/webpack ์˜ ์ง์ ‘์ ์ธ ์ข…์†์„ฑ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

@benelliott ์ข‹์€ ์ง€์ .

@lsunkara AFAIK๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” non-aot ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

@warmans ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค. --prod ํ”Œ๋ž˜๊ทธ์˜ ํšจ๊ณผ๋Š” https://github.com/angular/angular-cli/wiki/build# --dev-vs---prod-builds๋ฅผ ์ฐธ์กฐ

@bmcswee :+1: ์ €๋Š” ์ด์ œ ๋ชจ๋“  ๊ฒƒ์— shrinkwrap --dev๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. npm ํŒจํ‚ค์ง€์˜ ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์ง€์ณ์„œ ์ข€ ๋” ํ›ˆ๋ จ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋‘์—๊ฒŒ ์ข‹์€ ํŒ์ž…๋‹ˆ๋‹ค.

@warmans , ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ng build --env=prod๋Š” ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 3.3.0์— ๋Œ€ํ•œ Enhanced-resolve์— ๋Œ€ํ•œ ๊ณ ์ •๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”.

enhance-resolve ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ด€๋ จ ๋ฌธ์ œ:

3.3.0 ์ดํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ .

๋‚˜๋ฅผ ์œ„ํ•ด์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.
์ด๋ฏธ ์ด ์Šค๋ ˆ๋“œ์— ์ž‘์„ฑ๋œ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ•œ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์„ธ์š”!

@renatop7 ์—ฌ๊ธฐ์— ์žˆ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ œ์•ˆ ์ค‘ ์ผ๋ถ€๋Š” ์‹ค์ œ๋กœ package.json ์ ์ ˆํ•œ ๋ฒ„์ „์„ ์ €์žฅํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฐธ์กฐ ์ œ๊ฑฐ enhanced-resolve ์—์„œ ๋‹น์‹ ์˜ package.json (์ด๋ฏธ ๋‹ค๋ฅธ ํ•ด๊ฒฐ์ฑ…์˜ ์ผ๋ถ€๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ)
  2. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. npm i -DE [email protected] ( -DE ๋Š” npm4์™€ npm5 ์‚ฌ์ด์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•จ)
  3. (์„ ํƒ ์‚ฌํ•ญ) node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์ƒˆ๋กœ ์„ค์น˜ํ•ด๋„ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. npm install , ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ ์‹คํ–‰

ํŽธ์ง‘: ๋˜ํ•œ npm5 ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ package-lock.json ์žฌ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค(4๋‹จ๊ณ„ ์ „์— ์‚ญ์ œ). ์ด๊ฒƒ์ด ๋„ˆ๋ฌด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž ๊ธˆ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์ง€๋„ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Guston ์˜ ์•„์ฃผ ์ข‹์€ ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@gustorn ๋˜ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์„ ์–ป์œผ๋ ค๋ฉด npm ์บ์‹œ๋ฅผ ์ง€์›Œ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

@warmans -E ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๊นŒ? ๊ณ ๊ถ ๋ฐ•๋ฌผ์› ์บ์‹œ์—†์ด ํŒจํ‚ค์ง€์˜ ํŠน์ • ๋ฒ„์ „์„ ์š”๊ตฌํ•ด์„œ๋Š” ์•ˆ ๊ฒฝ์šฐ (๋˜๋Š” ์–ป์„ ์•Š์œผ๋ฉด ๊ทธ๊ฒƒ์€ ์ž˜๋ชป๋œ ๋‚˜๋Š” NPM์˜ ๋ฒ„๊ทธ ์ฃผ์žฅ ํ•  ๊ฒƒ).

@HirenParekh @ngtools/webpack ๊ฐ€ enhanced-resolve ์˜ ๋ฒ„์ „์„ ์ž ๊ทธ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 1.1.1 ๋ฆด๋ฆฌ์Šค ์˜ package.json ํŒŒ์ผ์„ ๋ณด๋ฉด ๋ฒ„์ „์ด ^3.1.0 ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. npm์€ ์ƒˆ๋กœ ์„ค์น˜ํ•  ๋•Œ ํŒจํ‚ค์ง€์˜ ์ตœ์‹  semver ํ˜ธํ™˜ ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” 3.4.0 ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘: ๋ถ„๋ช…ํžˆ ๋‚ด๊ฐ€ ๋‹ต์žฅํ•œ ๋‘ ๋ฒˆ์งธ ๋Œ“๊ธ€์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์งˆ๋ฌธ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@angular/[email protected] ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@filipesilva @yyx990803์ด ์ง€์ ํ•œ vue-cli AoT ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
https://github.com/webpack/enhanced-resolve/commit/03ef8f2b8d25bc976993eade7b1ed9caa2c7d0e1#commitcomment -23261583

ํŽธ์ง‘: ๋ถ„๋ช…ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด https://github.com/webpack/enhanced-resolve/pull/100์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. npm i
  2. npm i [email protected]

1.npm ํด๋ฆฐ ์บ์‹œ

  1. node_modules ์‚ญ์ œ
  2. package.json์— "enhanced-resolve": "3.3.0"์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
  3. npm ์„ค์น˜ ์‹คํ–‰
    ๊ทธ๋Ÿฐ ๋‹ค์Œ "ng build --prod" ๋ช…๋ น์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 1.2.4 / 1.3.0-rc.1 ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋‹ค๋ฅธ ์กฐ์น˜๊ฐ€ ํ•„์š” ์—†์ด ์ด ๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ๋ฐฉ์ง€๋ฉ๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‘๋‹ต๊ณผ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ œ๋กœํ™”์— ๋Œ€ํ•ด @sokra ์—๊ฒŒ ํฐ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

angular-cli์˜ ์ตœ์‹  1.2.4๋กœ ์—…๋ฐ์ดํŠธ๋œ ^1.0.0์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ์ฒ˜๋ฆฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

osx์—์„œ ๋ฒ„์ „ 1.2.4๋ฅผ ์‚ฌ์šฉํ•˜๋Š” @filipesilva , ์›์‚ฌ์™€ ํ•จ๊ป˜ ์„ค์น˜๋œ ์ž‘์—…์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

๋ฒ„์ „ 1.3.0-rc.1์—์„œ๋Š” ๋‹ค์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/Users/john/Workspace/tcabs2/ui/src'
resolve './$$_gendir/app/app.module.ngfactory' in '/Users/john/Workspace/tcabs2/ui/src'
  using description file: /Users/john/Workspace/tcabs2/ui/package.json (relative path: ./src)
    Field 'browser' doesn't contain a valid alias configuration
  after using description file: /Users/john/Workspace/tcabs2/ui/package.json (relative path: ./src)
    using description file: /Users/john/Workspace/tcabs2/ui/package.json (relative path: ./src/$$_gendir/app/app.module.ngfactory)
      no extension
        Field 'browser' doesn't contain a valid alias configuration
        /Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory doesn't exist
      .ts
        Field 'browser' doesn't contain a valid alias configuration
        /Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory.ts doesn't exist
      .js
        Field 'browser' doesn't contain a valid alias configuration
        /Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory.js doesn't exist
      as directory
        /Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory doesn't exist
[/Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory]
[/Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory.ts]
[/Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory.js]
[/Users/john/Workspace/tcabs2/ui/src/$$_gendir/app/app.module.ngfactory]
 @ ./src/main.ts 3:0-74
 @ multi ./src/main.ts

๋ฒ„์ „ 1.2.4๋Š” ์›์‚ฌ ์„ค์น˜๊ฐ€ ์•„๋‹Œ npm ์„ค์น˜์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@mildfuzz ์ œ๊ฑฐํ•˜๋ ค๊ณ  ๋‹น์‹ ์˜ yarn.lock , ์•„๋งˆ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ [email protected] ์ฃผ์œ„. ๋‹ค์Œ yarn ์—์„œ ๋‹ค์‹œ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

๋‹คํŠธ ์—†์Œ, CI ์„œ๋ฒ„๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ ์‚ฌ์ด์— yarn.lock ๋ฐ node_modules๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

rm -rf yarn.lock && rm -rf node_modules && yarn install && ng build -prod ์ด(๊ฐ€) ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

rm -rf yarn.lock && rm -rf node_modules && npm i && ng build -prod ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(npm 5.3.0 ์‚ฌ์šฉ)

์—ฌ๊ธฐ์— ๊ฐ™์€ : ๋ฌธ์ œ๊ฐ€ ์กด์žฌ rc.0 ์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค rc.1 ๋„.

node_modules, yarn.lock + yarn cache clean ์ œ๊ฑฐํ•œ ๋‹ค์Œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ - ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Œ ;/

์ถ”์‹ : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ ๋™์ผํ•˜์ง€๋งŒ rc.0์—์„œ๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ ์—†์ด ์ธ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ @mildfuzz๋กœ ๋ถ™์—ฌ๋„ฃ์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ข‹์€ ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ;-)

์›์‚ฌ ์„ค์น˜๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „ 3.3.0์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ng build --prod ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ˜ธ๊ธฐ์‹ฌ์—์„œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ ์‹œ๋„

npm install -g @angular/cli
ng -v 
 -returns version 1.2.4
npm new aottest
cd aottest
ng build --prod

์‹คํŒจ ์—†์ด ์ž‘๋™
์›์‚ฌ ๋˜๋Š” ์›์‚ฌ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  npm๋งŒ ์‚ฌ์šฉ

@mildfuzz @ryzy yarn list enhanced-resolve ๋Š”) ๋ฌด์—‡์„ ๋ณด์—ฌ์ค๋‹ˆ๊นŒ? ๋˜ํ•œ yarn why enhanced-resolve .

@ํ•„๋ฆฌํŽ˜์‹ค๋ฐ”

์›์‚ฌ ๋ชฉ๋ก v0.27.5
โ””โ”€ [email protected]
1.26์ดˆ ์•ˆ์— ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋งž์•„์š”, ๊ฑฐ๊ธฐ์— ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒŒ ๋ถ„๋ช…ํ•ด์š”. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ 3.3.0 ๊ณ ์ •ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ yarn์€ 3.4.1 ์„ค์น˜ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. yarn why enhanced-resolve ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์™œ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[1/4] "enhanced-resolve" ๋ชจ๋“ˆ์ด ์žˆ๋Š” ์ด์œ ๋Š”...?
[2/4] ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ดˆ๊ธฐํ™” ์ค‘...
[3/4] ์˜์กด์„ฑ์„ ์ฐพ๋Š” ์ค‘...
[4/4] ํŒŒ์ผ ํฌ๊ธฐ ๊ณ„์‚ฐ ์ค‘...
์ •๋ณด ์ด ๋ชจ๋“ˆ์ด ์กด์žฌํ•˜๋Š” ์ด์œ 

  • "@angular/cli#@ngtools/webpack"์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • "@angular/cli#webpack"์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
    info ์ข…์†์„ฑ์ด ์—†๋Š” ๋””์Šคํฌ ํฌ๊ธฐ: "196kB"
    ์ •๋ณด ๊ณ ์œ  ์ข…์†์„ฑ์ด ์žˆ๋Š” ๋””์Šคํฌ ํฌ๊ธฐ: "328kB"
    ์ •๋ณด ์ „์ด ์ข…์†์„ฑ์ด ์žˆ๋Š” ๋””์Šคํฌ ํฌ๊ธฐ: "820kB"
    info ๊ณต์œ  ์ข…์†์„ฑ ์ˆ˜: 12
    1.61์ดˆ ์•ˆ์— ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

yarn why enhanced-resolve

์ด ๋ชจ๋“ˆ์ด ์กด์žฌํ•˜๋Š” ์ด์œ 

  • "awesome-typescript-loader"๋Š” ๊ทธ๊ฒƒ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.
  • "webpack"์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๋Ž

"@angular/cli": "1.3.0-rc.0",
"@angular/compiler-cli": "4.1.3",
"@angular/animations": "4.1.3",
"@angular/common": "4.1.3",
"@angular/compiler": "4.1.3",
"@angular/core": "4.1.3",
"@angular/forms": "4.1.3",
"@angular/http": "4.1.3",
"@angular/platform-browser": "4.1.3",
"@angular/platform-browser-dynamic": "4.1.3",
"@angular/platform-server": "4.1.3",
"@angular/router": "4.1.3",
"rxjs": "5.4.2",
"zone.js": "0.8.14"

@thegitty @angular/cli ์–ด๋”˜๊ฐ€์— ๋งํฌ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ ... @angular/cli ๋Š” enhanced-resolve ์ง์ ‘ ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@coryrylan ํ , ๊ฑฐ๊ธฐ์— CLI ๋˜๋Š” ngtools/webpack ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์›์‚ฌ ์ž ๊ธˆ ์žฅ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
ngtools/ [email protected]
๊ฐ /[email protected]

version 3.4.1
This module exists because "@angular/cli#@ngtools/webpack" depends on it.

์–ดํœด.
๋นŒ๋“œ๊ฐ€ 2์ฃผ ๋งŒ์— 2๋ฒˆ์งธ๋กœ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
npm install [email protected]์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ

๋‹ค์Œ์€ ์›นํŒฉ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค.

https://github.com/webpack/webpack/commit/16bf0b6f26b23df682433ddefcbff5278a6fac2c

๋‚œ ๋‹น์‹ ์— ๋Œ€ํ•œ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ ํ•  ํ•„์š”๊ฐ€ ํŠน์ • ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ํž˜์„ ์‹ค์„ ์ƒ๊ฐ resolutions ๋‹น์‹ ์— package.json

@coryrylan ์ˆ˜์ •์„ ์œ„ํ•ด @angular/[email protected] ํ•„์š”ํ•˜์ง€๋งŒ 1.3.0-rc.0 ์žˆ์Šต๋‹ˆ๋‹ค.

@mildfuzz ์ปค๋ฐ‹์ด ์กด์žฌํ•˜์ง€๋งŒ ์•„์ง ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ webpack ๋ฆด๋ฆฌ์Šค๋Š” 9์ผ ์ „์ด์ง€๋งŒ ํ•ด๋‹น ์ปค๋ฐ‹์€ 13์‹œ๊ฐ„ ์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค.

package.json ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ณ  ์›์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

kamik<strong i="13">@T460p</strong> MINGW64 D:/sandbox/tmp
$ yarn && yarn list enhanced-resolve && yarn why enhanced-resolve
yarn install v0.24.6
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "win32" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning "[email protected]" has unmet peer dependency "@ngrx/store@^2.2.1".
warning "@ngrx/[email protected]" has unmet peer dependency "@ngrx/store@^2.0.0".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 66.95s.
yarn list v0.24.6
โ””โ”€ [email protected]
Done in 0.87s.
yarn why v0.24.6
[1/4] Why do we have the module "enhanced-resolve"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info Reasons this module exists
   - "@angular/cli#@ngtools/webpack" depends on it
   - "@angular/cli#webpack" depends on it
Done in 0.89s.

์›์‚ฌ์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” v0.24.6 ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

@filipesilva ์•„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•  ๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ์–ด์•ผ ํ–ˆ๋‹ค

@filipesilva ์ปค๋ฐ‹์€ semver ๋ณ€๊ฒฝ ์—†์ด ๋งˆ์Šคํ„ฐ์— ๋ฐ”๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ, ํ•˜์ง€๋งŒ ๋งˆ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  [email protected] ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ๋ฅผ ์–ป๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ github์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ด๋ฉฐ package.json์— ๋”ฐ๋ผ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์ง€์ . ํ , ๊ถ๊ธˆํ•˜๋‹ค

yarn + [email protected] ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@cebor ์ €๋„ ๊ฐ™์€ ์ƒํ™ฉ์ด์ง€๋งŒ ์•„์ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด Linux ํ™˜๊ฒฝ์—์„œ ์ด๊ฒƒ์ด ์‹คํŒจํ•˜๋Š” ๊ฒƒ์„ ์—ฌ์ „ํžˆ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

$ng -v
@angular/cli: 1.2.4
๋…ธ๋“œ: 6.11.1
์šด์˜์ฒด์ œ: ๋ฆฌ๋ˆ…์Šค x64
@๊ฐ๋„/๊ณตํ†ต: 4.3.1
@๊ฐ๋„/์ปดํŒŒ์ผ๋Ÿฌ: 4.3.1
@๊ฐ๋„/์ฝ”์–ด: 4.3.1
@angular/forms: 4.3.1
@angular/http: 4.3.1
@๊ฐ๋„/ํ”Œ๋žซํผ ๋ธŒ๋ผ์šฐ์ €: 4.3.1
@angular/platform-browser-dynamic: 4.3.1
@๊ฐ๋„/๋ผ์šฐํ„ฐ: 4.3.1
@angular/cli: 1.2.4
@angular/compiler-cli: 4.3.1
[root@4bc7c5f8560c]# ์›์‚ฌ ๋ชฉ๋ก ๊ฐ•ํ™” ํ•ด๊ฒฐ
์›์‚ฌ ๋ชฉ๋ก v0.27.5
โ”œโ”€ [email protected]
โ””โ”€ ์›นํŒฉ @
โ””โ”€ [email protected]
0.62์ดˆ ์•ˆ์— ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

OS X ๋ฐ Linux์—๋Š” @angular/cli && ํ–ฅ์ƒ ํ•ด๊ฒฐ์— ๋Œ€ํ•œ ๋ฒ„์ „ ์ผ์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์•ŒํŒŒ์ธ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

./src/main.ts์˜ ์˜ค๋ฅ˜
๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: ์˜ค๋ฅ˜: '/godata/pipelines/XXX/src'์˜ './$$_gendir/app/app.module.ngfactory'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
@ ./src/main.ts 4:0-74
@ multi ./src/main.ts

OS X ๋ฒ„์ „์€ ๋ฌธ์ œ ์—†์ด ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ด€๋ จ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ @angular/ cli @
--prod ํ”Œ๋ž˜๊ทธ ์—†์ด AOT ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์›นํŒฉ ๋กœ๋”ฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ ๋ฒ„์ŠคํŠธ๋˜๊ฑฐ๋‚˜ ์ถ•์†Œ๋œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค(์˜ˆ์ƒ๋Œ€๋กœ).

$ ng build -aot -bh /app/ -d /app/
 12% building modules 24/26 modules 2 active ...dh/code/skyl-sam/gui/src/polyfills.tsThe final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string
Hash: dccdd84edb379b90050e
Time: 18188ms
chunk    {0} common.bundle.js, common.bundle.js.map (common) 225 kB {8} [initial] [rendered]
chunk    {1} 1.chunk.js, 1.chunk.js.map 158 kB {2} {4} [rendered]
chunk    {2} 2.chunk.js, 2.chunk.js.map 22.8 kB {1} {4} [rendered]
chunk    {3} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 305 kB {8} [initial] [rendered]
chunk    {4} main.bundle.js, main.bundle.js.map (main) 206 kB {7} [initial] [rendered]
chunk    {5} styles.bundle.js, styles.bundle.js.map (styles) 12.8 kB {8} [initial] [rendered]
chunk    {6} scripts.bundle.js, scripts.bundle.js.map (scripts) 935 bytes {8} [initial] [rendered]
chunk    {7} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.39 MB [initial] [rendered]

๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์— --prod ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” AOT ๋นŒ๋“œ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฒญํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.

$ ng build -aot -bh /app/ -d /app/ --prod
 12% building modules 20/22 modules 2 active ...dh/code/skyl-sam/gui/src/polyfills.tsThe final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string
Hash: 087aa24978df80ff0791
Time: 31614ms
chunk    {0} common.c748e79cd1f1548103ca.bundle.css (common) 64.2 kB {8} [initial] [rendered]
chunk    {1} 1.25adab460fca740132f8.chunk.js 156 kB {2} {4} [rendered]
chunk    {2} 2.d8720a9ef943f0c023dd.chunk.js 22.8 kB {1} {4} [rendered]
chunk    {3} polyfills.ff68bf59b00f20dd55fa.bundle.js (polyfills) 305 kB {8} [initial] [rendered]
chunk    {4} main.84addcca1f874b2e3beb.bundle.js (main) 204 kB {7} [initial] [rendered]
chunk    {5} scripts.8e25fcd212b7caba6537.bundle.js (scripts) 935 bytes {8} [initial] [rendered]
chunk    {6} styles.5d90f8fb1f36b9f8617d.bundle.css (styles) 69 bytes {8} [initial] [rendered]
chunk    {7} vendor.32a6e9e7149831c7fbfc.bundle.js (vendor) 2.39 MB [initial] [rendered]
chunk    {8} inline.1170c1e8a9ba9c0dfcf5.bundle.js (inline) 0 bytes [entry] [rendered]

๋ธŒ๋ผ์šฐ์ €์˜ ์˜ค๋ฅ˜

ERROR Error: Uncaught (in promise): Error: Loading chunk 0 failed.
Error: Loading chunk 0 failed.
    at HTMLScriptElement.n (inline.1170c1eโ€ฆ.bundle.js:1)
    at HTMLScriptElement.o (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at Object.onInvokeTask (vendor.32a6e9eโ€ฆ.bundle.js:1)
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at r.runTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at e.invokeTask [as invoke] (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at h (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at HTMLScriptElement.d (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at HTMLScriptElement.n (inline.1170c1eโ€ฆ.bundle.js:1)
    at HTMLScriptElement.o (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at Object.onInvokeTask (vendor.32a6e9eโ€ฆ.bundle.js:1)
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at r.runTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at e.invokeTask [as invoke] (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at h (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at HTMLScriptElement.d (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at a (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at a (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at polyfills.ff68bf5โ€ฆ.bundle.js:1
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at Object.onInvokeTask (vendor.32a6e9eโ€ฆ.bundle.js:1)
    at t.invokeTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at r.runTask (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at o (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at e.invokeTask [as invoke] (polyfills.ff68bf5โ€ฆ.bundle.js:1)
    at h (polyfills.ff68bf5โ€ฆ.bundle.js:1)
_ @ vendor.32a6e9eโ€ฆ.bundle.js:1

๋”ฐ๋ผ์„œ "0.84a03cc88aee47079f58.chunk.js" ์ฒญํฌ๊ฐ€ ์ƒ์„ฑ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ์ด๋Ÿฐ ๊ฒƒ์„ ๋ณธ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋„์›€์„ ์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

๊ทธ ๋ฌธ์ œ๋Š” ์ •๋ง ์งœ์ฆ๋‚˜๊ณ  ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ npm install [email protected] ๋Š” Windows์—์„œ ์ž˜ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ๋” ์ด์ƒ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์œ ์šฉํ•œ ํžŒํŠธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@angular/cli ~1.2.0์œผ๋กœ package.json์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  1.2.4๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฉฐ ํ•ดํ‚นํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@filipesilva ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค [email protected]์„

yarn list webpack ์—๋Š” [email protected] ๊ฐ€ ์žˆ๋Š” "enhanced-resolve": "^3.0.0", ๊ฐ€ ํ‘œ์‹œ๋˜๋ฏ€๋กœ ์‹คํ–‰ ์‹œ 3.4.1๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

[email protected] ์—์„œ๋„ ๊ณ ์ •๋˜์ง€ ์•Š๊ณ  "enhanced-resolve": "^3.3.0",

@ํ•„๋ฆฌํŽ˜์‹ค๋ฐ”

$ yarn list enhanced-resolve
yarn list v0.27.5
โ”œโ”€ @ngtools/[email protected]
โ”‚  โ””โ”€ [email protected]
โ””โ”€ [email protected]
Done in 0.83s.
$ yarn why enhanced-resolve
yarn why v0.27.5
[1/4] Why do we have the module "enhanced-resolve"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info This module exists because "webpack" depends on it.
info Disk size without dependencies: "196kB"
info Disk size with unique dependencies: "328kB"
info Disk size with transitive dependencies: "848kB"
info Number of shared dependencies: 10
Done in 0.84s.
$ yarn list webpack
yarn list v0.27.5
โ””โ”€ [email protected]
Done in 0.83s.

์—ฌ๊ธฐ ๋‚ด ์ „์ฒด package.json: https://gist.github.com/ryzy/aa422bc587c6858207caa55aa66c82db

์›์‚ฌ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Enhanced-resolve๊ฐ€ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฆด๋ฆฌ์Šคํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— @angular/cli": "1.2.4 ์—์„œ @angular/cli": "1.2.3 ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/webpack/enhanced-resolve/releases/tag/v3. 4.1

ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์—ํ…Œ๋ฅด ๋ฒ„์ „์œผ๋กœ.

yarn list enhanced-resolve
yarn list v0.27.5
โ””โ”€ [email protected]
Done in 1.26s.
yarn why enhanced-resolve
yarn why v0.27.5
[1/4] Why do we have the module "enhanced-resolve"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info This module exists because "@angular/cli#@ngtools/webpack" depends on it.
Done in 2.81s.

@BorntraegerMarc๋Š” enhanced-resolve ๋ฅผ package.json์— 3.3.0์œผ๋กœ ๊ณ ์ • ์ถ”๊ฐ€ํ•˜์—ฌ ์›์‚ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@sickelap ์ €๋Š” ์›์‚ฌ์˜ ํ‰๋ฉด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€์ ์ธ ์ด์œ ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  resolutions ๋‹จ์ผ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

@BorntraegerMarc ๋Š” webpack dep์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ yarn์€ ๋ฃจํŠธ ์ข…์†์„ฑ์œผ๋กœ Enhanced-resolve๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด "enhanced-resolve": "3.3.0" ๋ฅผ package.json devDependencies์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ง€๊ธˆ์€ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@sickelap "enhanced-resolve": "3.3.0", ๋ฅผ devDependencies์— ์ถ”๊ฐ€ํ•˜๊ณ  yarn cache clean ๋ฐ yarn ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. yarn.lock ํŒŒ์ผ๋„ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

yarn.lock ํŒŒ์ผ์— ์—ฌ์ „ํžˆ ํ•ญ๋ชฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

enhanced-resolve@^3.0.0:
  version "3.4.1"
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
  dependencies:
    graceful-fs "^4.1.2"
    memory-fs "^0.4.0"
    object-assign "^4.0.1"
    tapable "^0.2.7"

/media/vimal/personal/future/dar-wepapp/src/app/properties-view/properties-view.component.ts์˜ ์œ ํ˜• PropertiesViewComponent ์˜ค๋ฅ˜๋Š” 2๊ฐœ ๋ชจ๋“ˆ ์„ ์–ธ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค: /media/vimal/personal์˜ AppModule /media/vimal/personal/future/dar-wepapp/src/app/login/login.module.ts์˜ /future/dar-wepapp/src/app/app.module.ts ๋ฐ loginModule! /media/vimal/personal/future/dar-wepapp/src/app/properties-view/properties-view.component.ts์˜ PropertiesViewComponent๋ฅผ /media/vimal/personal/future/์˜ AppModule์„ ๊ฐ€์ ธ์˜ค๋Š” ์ƒ์œ„ ๋ชจ๋“ˆ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. dar-wepapp/src/app/app.module.ts ๋ฐ loginModule์€ /media/vimal/personal/future/dar-wepapp/src/app/login/login.module.ts์— ์žˆ์Šต๋‹ˆ๋‹ค. /media/vimal/personal/future/dar-wepapp/src/app/properties-view/properties-view.component.ts์˜ PropertiesViewComponent๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ํฌํ•จํ•˜๋Š” ์ƒˆ NgModule์„ ๋งŒ๋“  ๋‹ค์Œ /media์˜ AppModule์—์„œ ํ•ด๋‹น NgModule์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. /vimal/personal/future/dar-wepapp/src/app/app.module.ts ๋ฐ loginModule์€ /media/vimal/personal/future/dar-wepapp/src/app/login/login.module.ts์— ์žˆ์Šต๋‹ˆ๋‹ค.

./src/main.ts์˜ ์˜ค๋ฅ˜
๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: ์˜ค๋ฅ˜: '/media/vimal/personal/future/dar-wepapp/src'์˜ './$$_gendir/app/app.module.ngfactory'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
@ ./src/main.ts 3:0-74
@ multi ./src/main.ts

๋ฉ‹์ง„ ์•„์ด๋””์–ด

@BorntraegerMarc @mildfuzz ์›์‚ฌ ํ•ด์ƒ๋„์— ๋ฌด์—‡์ด ๋ฌธ์ œ์ธ์ง€ ๋ชจ๋ฅด์ง€๋งŒ ์ง์ ‘ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋•œ์งˆํ•  ์ˆ˜ ์žˆ๋Š” package.json ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@ryzy ๋‚˜๋Š” ๋‹น์‹ ์˜ package.json์„ ์‹œ๋„ํ–ˆ๊ณ  ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์–ป์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

kamik<strong i="11">@T460p</strong> MINGW64 D:/sandbox/tmp
$ yarn --version
0.24.6

kamik<strong i="12">@T460p</strong> MINGW64 D:/sandbox/tmp
$ yarn
yarn install v0.24.6
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "win32" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 81.84s.

kamik<strong i="13">@T460p</strong> MINGW64 D:/sandbox/tmp
$ yarn list enhanced-resolve
yarn list v0.24.6
โ””โ”€ [email protected]
Done in 0.86s.

kamik<strong i="14">@T460p</strong> MINGW64 D:/sandbox/tmp
$ yarn why enhanced-resolve
yarn why v0.24.6
[1/4] Why do we have the module "enhanced-resolve"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info Reasons this module exists
   - "@angular/cli#@ngtools/webpack" depends on it
   - "@angular/cli#

๊ทธ๋ž˜์„œ atm v0.27.5 ๋Š” ์ข…์†์„ฑ์„ ์ œ๋Œ€๋กœ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๋Š” ๋ฐ˜๋ฉด v0.24.6 ๋Š” ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@filipesilva thx ํšŒ์‹ . ๋‚˜๋Š” ์›์‚ฌ v0.27.5 ์ค‘์ด๋ฏ€๋กœ ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ๋ฌธ์ œ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ...

๋‚ด package.json์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
    "name": "x",
    "version": "1.0.0",
    "engine": {
        "node": "0.10.x",
        "npm": "2.1.x"
    },
    "homepage": "komed-health.com",
    "scripts": {
        "build:prod": "ng build --prod"
    },
    "dependencies": {
        "@angular/animations": "4.3.1",
        "@angular/common": "4.3.1",
        "@angular/compiler": "4.3.1",
        "@angular/core": "4.3.1",
        "@angular/forms": "4.3.1",
        "@angular/http": "4.3.1",
        "@angular/platform-browser": "4.3.1",
        "@angular/platform-browser-dynamic": "4.3.1",
        "@angular/platform-server": "4.3.1",
        "@angular/router": "4.3.1",
        "@angular/service-worker": "1.0.0-beta.16",
        "@codebakery/origami": "1.2.3",
        "@types/socket.io-client": "1.4.29",
        "angular-translator": "2.2.0",
        "check-browser": "0.1.7",
        "classlist.js": "1.1.20150312",
        "core-js": "2.4.1",
        "intl": "1.2.5",
        "ngx-auto-unsubscribe": "1.0.0",
        "rollup": "0.45.2",
        "rollup-plugin-commonjs": "8.0.2",
        "rollup-plugin-node-resolve": "3.0.0",
        "rxjs": "5.4.2",
        "tributejs": "2.3.7",
        "zone.js": "0.8.14"
    },
    "devDependencies": {
        "@angular/cli": "1.2.4",
        "@angular/compiler-cli": "4.3.1",
        "@types/jasmine": "2.5.53",
        "browserstack-local": "1.3.0",
        "codelyzer": "3.1.2",
        "cpr": "2.2.0",
        "db-migrate": "0.10.0-beta.21",
        "db-migrate-mongodb": "1.2.2",
        "enhanced-resolve": "3.3.0",
        "jasmine-core": "2.6.4",
        "jasmine-spec-reporter": "4.1.1",
        "karma": "1.7.0",
        "karma-chrome-launcher": "2.2.0",
        "karma-cli": "1.0.1",
        "karma-coverage-istanbul-reporter": "1.3.0",
        "karma-jasmine": "1.1.0",
        "karma-jasmine-html-reporter": "0.2.2",
        "polymer-cli": "1.3.1",
        "protractor": "5.1.2",
        "rimraf": "2.6.1",
        "ts-node": "3.2.1",
        "tslint": "5.5.0",
        "typescript": "2.4.2"
    }
}

@BorntraegerMarc ๋Š” dependencies ๋ฐ devDependencies ์•„๋ž˜์— "enhanced-resolve": "3.3.0" ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bmcswee ๊ทธ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

@ํ•„๋ฆฌํŽ˜์‹ค๋ฐ”
๋ฌธ์ œ #7125์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ ์ตœ์‹  cli๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
- ์ตœ์‹  rc1 ์‚ฌ์šฉ
- [email protected]์„ ์„ค์น˜ํ•ด๋„ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

yarn ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  npm ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

yarn why v0.27.5
[1/4] Why do we have the module "enhanced-resolve"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info Has been hoisted to "enhanced-resolve"
info This module exists because it's specified in "devDependencies".
Done in 0.82s.
yarn list v0.27.5
โ”œโ”€ [email protected]
โ””โ”€ [email protected]
   โ””โ”€ [email protected]
Done in 0.78s.



md5-5f5afc9e77bd4c2f2ec312c6146b7f7e



ng new my-prj --skip-install --skip-git -dir my-prj --style scss --routing 

[email protected] ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค๋ฅธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค.

@filipesilva ์‹ค์ œ๋กœ ์‹ค ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ๋‹ค์Œ ๋ฒ„์ „(0.28.4)์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์›์‚ฌ๋ฅผ v0.24.6 ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋“ˆ ํ•ด์ƒ๋„๋Š” ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ([email protected]) ์˜ค๋ฅ˜๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

$ node -v
v6.11.0
$ yarn list
yarn list v0.24.6
...
โ”œโ”€ @angular/[email protected]
...
โ”œโ”€ @ngtools/[email protected]
โ”‚  โ”œโ”€ [email protected]
...
โ”œโ”€ [email protected]
...
โ”œโ”€ [email protected]
โ”‚  โ”œโ”€ enhanced-resolve@^3.3.0
...
$ yarn why enhanced-resolve
yarn why v0.24.6
info Reasons this module exists
   - "@angular/cli#@ngtools/webpack" depends on it
   - "@angular/cli#webpack" depends on it

์ด์ „๊ณผ ๋™์ผํ•œ package.json ์ž…๋‹ˆ๋‹ค.

์‚ญ์ œ๋œ ์›์‚ฌ ์บ์‹œ์™€ ํ•จ๊ป˜ node_modules ๋ฐ yarn.lock ์—†์ด ์ƒˆ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
AoT ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค( ์ „์ฒด ๋คํ”„ ์ฐธ์กฐ). ๊ธฐ์ด ํ•œ...

@filipesilva ์‹ค์ œ๋กœ ๋นŒ๋“œํ•˜๋ ค๊ณ (AoT๋กœ) ์‹œ๋„

๋ˆ„๊ตฐ๊ฐ€ ์ด ํ‹ฐ์ผ“์„ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์›์‚ฌ์— ํŠน์ •ํ•œ ์ƒˆ ํ‹ฐ์ผ“์„ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ์š”?

Yarn์€ ์›ํ•˜๋Š” ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด 3.4 ๋ฒ„์ „์„ ๊ณ„์† ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๋ฒ„์ „ ๋ฒˆํ˜ธ์— ^๋ฅผ ์‚ฌ์šฉํ•˜๋Š” webpack). ๋‚ด๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ 3.3.0์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก Enhanced-resolve ^3.4.0 ํ•ญ๋ชฉ์˜ ๋ฒ„์ „ ๋ฐ ํ•ด๊ฒฐ ํ•„๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋‚ด yarn.lock์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@kavi87 ์˜ˆ, ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ์žฅ๊ธฐ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค :์Šค๋งˆ์ผ:

@BorntraegerMarc ์žฅ๊ธฐ์ ์ธ ์†”๋ฃจ์…˜์€ ์ž์ฒด ํ•ด๊ฒฐ์ด ๊ฐœ์„ ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@stwic ์ด๋ฏธ "์ˆ˜์ •"์„ ๊ฒŒ์‹œ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์ •๋ง๋กœ ํ•ด๊ฒฐ๋˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ์›์ธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

@cebor ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” @ngtools/webpack ์ธก์—์„œ ์žฅ๊ธฐ์ ์ธ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. enhanced-resolve ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. WebpackCompilerHost ์—์„œ @ngtools/webpack WebpackCompilerHost ์˜ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„์„ ์–ธ์ œ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ? ์‹ค์ œ ์ˆ˜์ •์— ์ง‘์ค‘ํ•œ ๋‹ค์Œ ํ˜„์žฌ ์„ค์ •์œผ๋กœ ์›์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋” ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WebpackCompilerHost ์ˆ˜์ •์ด ํฌํ•จ๋œ ์ตœ์‹  angular-cli ๋ฒ„์ „์„ ์–ป์œผ๋ฉด ์›์‚ฌ๊ฐ€ ๋‹ค์‹œ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

@filipesilva : ๋‚ด ์ด์ „ ๋Œ“๊ธ€ https://github.com/angular/angular-cli/issues/7113#issuecomment -317599036์„ ๋ณด๊ณ  ์ด ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๊ฒƒ ๊ฐ™์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ตœ์†Œํ•œ์˜ ์žฌํ˜„์œผ๋กœ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค.

@ samridh90 ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฌธ์ œ ์—†์ด ๋‚ด ์ œํ’ˆ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค...

@BorntraegerMarc : ์•ฑ์— ์ง€์—ฐ ๋กœ๋“œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@samridh90 ๋„ค

npm install [email protected] ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์›นํŒฉ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด npm install [email protected] ๋„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ 3์‹œ๊ฐ„์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค :(

@filipesilva ๋ฒŒ์จ ๋•œ์งˆํ•  ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋‚˜์š”? :) ๋‚˜๋Š” ๊ทธ ์‚ฌ์ด์— ์›์‚ฌ๋ฅผ ์—ด์—ˆ์ง€๋งŒ https://github.com/yarnpkg/yarn/issues/4024

@filipesilva ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. @ngtools/webpack ํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
"@angular/compiler-cli": "^4.3.1", "@angular/platform-server": "^4.3.1", "@ngtools/webpack": "^1.5.3", "webpack": "^3.4.0", "@angular/common": "^4.3.1", "@angular/compiler": "^4.3.1", "@angular/core": "^4.3.1", "@angular/forms": "^4.3.1", "@angular/http": "^4.3.1", "@angular/platform-browser": "^4.3.1", "@angular/platform-browser-dynamic": "^4.3.1", "@angular/router": "^4.3.1",

์ด๊ฒƒ์€ webpack > 3.3.0 ๋ฐ @ngtools/webpack ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

npm install [email protected] [email protected]

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, @ngtools/webpack ๋ฐ [email protected] ์ค‘๋‹จ์€ npm์—์„œ๋„ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์•ผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋งŽ์€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[email protected] ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ €๋ฅผ ํฌํ•จ์‹œํ‚ค์‹ญ์‹œ์˜ค. ๋‚˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด 3์‹œ๊ฐ„์„ ํฌ์ƒํ•œ [email protected] ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค.

์›์‚ฌ๋กœ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ๋น ๋ฅธ ์ˆ˜์ •: ๋‚ด package.json์˜ "3.3.0"์— ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ์„ ๊ณ ์ •ํ•˜๊ณ  webpack์—์„œ ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ์„ ์‚ญ์ œํ•˜๋Š” "postinstall"-์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ npm install [email protected] [email protected] ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Txanks

์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด @play2web ์ด ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

๋”ฐ๋ผ์„œ ํ˜„์žฌ ๊ณต์‹์ ์ธ(100% ์ž‘๋™) ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์›์‚ฌ๋ฅผ ๋ฒ„์ „ 0.24.6์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@BorntraegerMarc "๊ณต์‹์ ์ธ" ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? AFAIK @ngtools/webpack ์™€ webpack ์‚ฌ์ด์— ์ข…์†์„ฑ ์ถฉ๋Œ์ด ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. @ngtools/webpack ๋Š” ์›์‚ฌ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

OK @uitgewis with "official" ๋‚ด ๋ง์€ ๊ณต์‹์ ์œผ๋กœ (์ง€๊ธˆ๊นŒ์ง€) ๋ฒ„๊ทธ๋กœ ์ธ์ •๋œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. https://github.com/yarnpkg/yarn/issues/4024 ๋” ์ด์ƒ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ "๊ณต์‹"์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ๋„ˆ๋ฌด ๊ฐ•ํ•œ ๋‹จ์–ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„ ๋‹ค๋ฅธ ๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— 0.24.6์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค

sokra(https://github.com/webpack/enhanced-resolve/issues/98#issuecomment-317516344)์—์„œ ๊ฐ์ง€ํ•œ ๋ฌธ์ œ๊ฐ€ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์˜ ๋กœ๋“œ๋งต์— ์žˆ๋Š” ๊ฒฝ์šฐ "๊ณต์‹์ ์ธ" ์„ค๋ช…์ด ํ›Œ๋ฅญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

ํ˜„์ƒ ์œ ์ง€:

  • @ngtools/webpack ๋Š” webpack > 3.3.0 ์™€ ํ•จ๊ป˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • @angular/cli ๋Š” ์›์‚ฌ > 0.24.6 ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์‹ซ์ง€๋งŒ yarn ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์˜ต์…˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๊ธฐ์ˆ ์ ์œผ๋กœ yarn.lock ํŒŒ์ผ์„ ์†์œผ๋กœ "์ˆ˜์ •"ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Angular ๊ด€๋ จ ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ž ๊ธˆ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[email protected]:
  version "3.3.0"
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
  dependencies:
    graceful-fs "^4.1.2"
    memory-fs "^0.4.0"
    object-assign "^4.0.1"
    tapable "^0.2.5"

enhanced-resolve@^3.0.0:
  version "3.4.1"
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
  dependencies:
    graceful-fs "^4.1.2"
    memory-fs "^0.4.0"
    object-assign "^4.0.1"
    tapable "^0.2.7"

๋‹ค์Œ์œผ๋กœ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค.

[email protected], enhanced-resolve@^3.0.0:
  version "3.3.0"
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
  dependencies:
    graceful-fs "^4.1.2"
    memory-fs "^0.4.0"
    object-assign "^4.0.1"
    tapable "^0.2.5"

0.27.5๋กœ ๋‹ค์‹œ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ž์ฒด์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด yarn.lock ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ฐœ๊ฒฌ๋  ๋•Œ๊นŒ์ง€ ์ด ์ž‘์—…์€ _ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค_.

@Guston ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. yarn ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค yarn.lock ์ž˜๋ชป๋œ ํ•ญ๋ชฉ์ด ๋‹ค์‹œ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์‹คํŒจํ•œ ๋นŒ๋“œ๊ฐ€ ์žˆ๋Š” ๋‚ด ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. https://github.com/cebor/ng2-start

@cebor , ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ผ๋ฐ˜ CLI ํ”„๋กœ์ ํŠธ์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค(์ฆ‰, yarn ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ•˜์ง€๋งŒ webpack ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ•˜์ง€ _์•Š์Šต๋‹ˆ๋‹ค_).

webpack@^3.4.1 ์ข…์†์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ ๋ฒ„์ „์ด enhanced-resolve@^3.4.0 ์— ๋ช…์‹œ์ ์œผ๋กœ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž ๊ธˆ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € [email protected] ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cebor @Guston์ด ์ œ์•ˆํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ํ›„ yarn --pure-lockfile ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ node_modules ๋„ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: ์˜ค๋ฅ˜: 'hello/src'์—์„œ './$$_gendir/app/app.module.ngfactory'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ์ถ”๊ฐ€ ์ฐธ๊ณ  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. AOT๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ผ๋ถ€๋Š” ๋นŒ๋“œ๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ์ผ๋ถ€๋Š” ๋Ÿฐํƒ€์ž„์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค(๊ฒฝํ—˜์ƒ).

https://github.com/rangle/angular-2-aot-sandbox

๋‚˜๋Š” ์ด ๋ฒ„๊ทธ์— ๋ถ€๋”ช์ณค๊ณ  ๋‚ด ์•ฑ์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ œ ํŠนํžˆ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‚

@krjordan ์—ฌ๊ธฐ์„œ ๋ฐ˜๋ณตํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ #7136์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ํŽธ์ง‘ํ•˜๋ฉด --pure-lockfile ์˜ต์…˜์ด _ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค_.

Yarn ์‚ฌ์šฉ์ž: https://github.com/angular/angular-cli/issues/7136#issuecomment -318313404์— ์ „์šฉ ํ† ๋ก  ์ฃผ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ : ๋‹น์‹ ์€ ์•ˆ webpack ๋‹น์‹ ์˜ package.json์—. Webpack์€ ๋™์‹œ์— ์„ค์น˜๋œ ์—ฌ๋Ÿฌ ๋ฒ„์ „์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/angular/angular-cli/issues/6417#issuecomment -315708400์„ ์ฐธ์กฐ

์šฐ๋ฆฌ๋Š” @ngtools/webpack (https://github.com/webpack/enhanced-resolve/issues/98#issuecomment-317518593์— ๋”ฐ๋ผ)๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๊ฒƒ์ด์ง€๋งŒ ์ด๊ฒƒ์€ ํ•„์š”์— ๋”ฐ๋ผ ๋‹จ๊ธฐ๊ฐ„์— ์ผ์–ด๋‚  ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ์ž‘์—….

๊ทธ๋™์•ˆ ์šฐ๋ฆฌ๋Š” [email protected] (https://github.com/angular/angular-cli/pull/7123) ๋ฐ [email protected] (https://github.com/angular/angular- cli/pull/71300). ์ด๋กœ ์ธํ•ด ์ข…์†์„ฑ์ด ์ œ๋Œ€๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

@samridh90 https://github.com/angular/angular-cli/issues/7113#issuecomment -317599036์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด โ€‹โ€‹์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@filipesilva ๊ทธ๋ž˜์„œ angular-cli ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ ค๋ฉด package.json์— [email protected] ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ ํ•ฉ๋‹ˆ๊นŒ , ์•„๋‹ˆ๋ฉด ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์œ„์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์˜๊ฒฌ์— ๋”ฐ๋ผ @angular/ cli @

์ค‘๊ฐ„ ์ˆ˜์ •์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ?

์ฐธ๊ณ ๋กœ, ์ด๊ฒƒ์ด ์ž‘๋™ํ•œ๋‹ค๋Š” ์†Œ๋ฌธ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Enhanced-resolve๊ฐ€ 3.4.1๋กœ ์ถฉ๋Œ ํ•˜๋”๋ผ๋„ ๋ฐฉ๊ธˆ ์ถœ์‹œ๋œ 1.2.6 ์—์„œ ์—ฌ์ „ํžˆ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•ฉ๋‹ˆ๋‹ค .

๋‚˜๋Š” ์ด๊ฒƒ์ด npm 5์™€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ œ์•ˆ ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค...์–ด์จŒ๋“ ? (์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์ „์— package-lock.json ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.)

๐Ÿ‘‰ ํŽธ์ง‘: ์•„๋ž˜ ์ด ๋Œ“๊ธ€์„ ์ฐธ์กฐํ•˜์„ธ์š” . ์‚ฌ์‹ค ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

CLI ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ

  • ์›์‚ฌ 0.24.6
  • ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ@ 3.3.0

@ngtools/webpack ์‚ฌ์šฉํ•˜๋Š” ๋น„ CLI ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ

  • ์›์‚ฌ 0.24.6
  • ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ@ 3.3.0
  • ์›นํŒฉ@ 3.3.0

์–ด์ œ(https://github.com/angular/angular-cli/pull/7169) 1.2.6 / 1.3.0-rc.3 ์•„๋ž˜์— ์ƒˆ๋กœ์šด ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. [email protected] ์ดํ•˜๊ฐ€ ์›์‚ฌ ์•„๋ž˜์—์„œ๋„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@russelltrafford ๋งํ•˜๊ธฐ ์–ด๋ ต๊ณ  ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. npm์— ์žˆ๋‹ค๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด package-lock.json / yarn.lock / node_modules package.json ํ•˜๊ณ  [email protected] , npm install , ng build --aot . $$gendir ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@michaelsanford npm ๋˜๋Š” yarn์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? package.json์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ 1.2.6 / 1.3.0-rc.3 ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹น์‹ ์ด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค๋ฅผ enhanced-resolve ๋˜๋Š” webpack ๋‹น์‹ ์˜ package.json . package.json (https://github.com/angular/angular-cli/issues/7113#issuecomment-318328125)์— webpack ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฌผ๊ฑด์ด ๊นจ์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@ngtools/[email protected] ๋‹ค์‹œ ์ž˜ ์ž‘๋™ ๐Ÿ‘

@filipesilva ๋‹คํ–‰ ์ž…๋‹ˆ๋‹ค ํ•ด๊ฒฐ๋์ง€๋งŒ ๊ด€๋ จ ๋ฌธ์ œ๋กœ ์˜๋ฏธ ์—†๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํ–ฅํ›„ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? (๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋Š” ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ์˜ค๋ฅ˜๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

@ngtools/[email protected] ์‚ฌ์šฉํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ–ˆ๋‹ค [email protected] ์‹คํ–‰ ํ•œ ํ›„ npm install ๋‹ค์Œ ๋ณต์‚ฌ / ๋ถ™์—ฌ ๋„ฃ๊ธฐํ–ˆ๋‹ค node_modules/enhanced-resolve ์— node_modules/webpack/node_modules/enhanced-resolve ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด.

@filipesilva ํ•˜์ง€๋งŒ ๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

Windows 10(cmdr ์…ธ ์•„๋ž˜)์—์„œ [email protected] ๋ฐ [email protected] ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ „์—ญ Angular CLI๋Š” 1.2.6์ด๋ฉฐ ๋‚ด ํ”„๋กœ์ ํŠธ์— ์„ค์น˜๋œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

ฮป npm ls -g @angular/cli
`-- @angular/[email protected]

๋‹ค์Œ์€ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ package.json .

{
  "name": "prod-test-fail",
  "version": "1.0.0",
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.3.1",
    "@angular/common": "^4.3.1",
    "@angular/compiler": "^4.3.1",
    "@angular/core": "^4.3.1",
    "@angular/forms": "^4.3.1",
    "@angular/http": "^4.3.1",
    "@angular/platform-browser": "^4.3.1",
    "@angular/platform-browser-dynamic": "^4.3.1",
    "@angular/router": "^4.3.1",
    "bootstrap": "^3.3.7",
    "core-js": "^2.4.1",
    "font-awesome": "^4.7.0",
    "jquery": "^3.2.1",
    "moment": "^2.18.1",
    "rxjs": "^5.4.2",
    "zone.js": "^0.8.14"
  },
  "devDependencies": {
    "@angular/cli": "1.2.6",
    "@angular/compiler-cli": "^4.3.1",
    "@angular/language-service": "^4.3.1",
    "@types/core-js": "^0.9.42",
    "@types/jquery": "^3.2.9",
    "@types/node": "8.0.17",
    "codelyzer": "^3.1.2",
    "ts-node": "~3.3.0",
    "tslint": "^5.5.0",
    "typescript": "^2.4.2"
  }
}

์˜ค๋Š˜ ์•„์นจ์— node_modules/ ํด๋”๋ฅผ ์‚ญ์ œํ–ˆ๋Š”๋ฐ package-lock.json ๋ฐ npm์ด ์œ„์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

ng build ์ถœ๋ ฅ:

ฮป ng build
Hash: 02193d0724fa51e87a0d
Time: 24523ms
chunk    {0} main.bundle.js, main.bundle.js.map (main) 2.24 MB {2} [initial] [rendered]
chunk    {1} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 174 kB {3} [initial] [rendered]
chunk    {2} vendor.bundle.js, vendor.bundle.js.map (vendor) 3.89 MB [initial] [rendered]
chunk    {3} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

ng build --prod ๋ฐ ng build --aot :

ฮป ng build --prod
Hash: adc8c0af1f195a4cd49a
Time: 6075ms
chunk    {0} polyfills.dd983c51be469b02aa15.bundle.js (polyfills) 174 kB {3} [initial] [rendered]
chunk    {1} main.10609bd5e9ef4fd0b393.bundle.js (main) 713 bytes {2} [initial] [rendered]
chunk    {2} vendor.a590f07d547ec4b39908.bundle.js (vendor) 849 kB [initial] [rendered]
chunk    {3} inline.bf6c517a9f6f64c103ca.bundle.js (inline) 0 bytes [entry] [rendered]

ERROR in Cannot determine the module for class ModalInstanceComponent in C:/Users/<me>/app/src/ui/src/app/components/modal/modalInstance.ts! Add ModalInstanceComponent to the NgModule to fix it.

ERROR in ./src/main.ts
Module not found: Error: Can't resolve './../$$_gendir/src/app.module.ngfactory' in 'C:\Users\<me>\app\src\ui\src'
 @ ./src/main.ts 3:0-77
 @ multi ./src/main.ts

์ด๊ฒƒ์ด _beta-6_์—์„œ ํƒœ์–ด๋‚œ angular 2 ํ”„๋กœ์ ํŠธ๋ผ๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ๋‚ด ๋ฌธ์ œ์˜ ์ง„์ •ํ•œ ์›์ธ์ด์–ด์•ผ ํ•จ). angular๊ฐ€ ์—…๋ฐ์ดํŠธ๋จ์— ๋”ฐ๋ผ 3์ฃผ๋งˆ๋‹ค ์ตœ์‹  ์ •๋ณด๋ฅผ ์ ์ง„์ ์œผ๋กœ ์œ ์ง€ํ•ด ์™”์Šต๋‹ˆ๋‹ค.

ng ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์†Œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ng new ๋กœ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ํŒŒ์ผ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๋‹ค์†Œ ํ—ˆ์šฉ๋˜๋Š” ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฏธํ•ด๊ฒฐ ModalInstanceComponent ์˜ค๋ฅ˜๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์ด ์—†๊ณ  ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ ์ธ์Šคํ„ด์Šคํ™”๋ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ๋ณธ @NgModule ์— ํฌํ•จํ•˜๋ฉด ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ง€๊ธˆ์€ ๊ทธ๋Œ€๋กœ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด (์ง€๊ธˆ?) ์•ˆํ‹ฐ ํŒจํ„ด์ด๋ผ๊ณ  ์ƒ์ƒํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์œ ํ˜•์˜ ๋ฌธ์ œ ๋Š” ๊ฑฐ์˜ ๋™์‹œ์— ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๊ด€๋ จ์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ 0.8.17 ์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋จผ์ € can't resolve $$_gendir ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .17 ๋ฐ .16 ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

(๊ทธ๋ฆฌ๊ณ  ์›€์ธ ๋ ธ๋˜ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ €๋Š” jQuery๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜‰.)

@michaelsanford ์•„, ์ด์ œ ๋ณด๋‹ˆ ์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ์‹ค์ œ๋กœ ๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

C:/Users/์˜ ModalInstanceComponent ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ชจ๋“ˆ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜/app/src/ui/src/app/components/modal/modalInstance.ts! NgModule์— ModalInstanceComponent๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๊ฒƒ์ด ์‹คํŒจํ•˜๊ธฐ ๋•Œ๋ฌธ์— AOT๋Š” ์‹ค์ œ๋กœ ์•„๋ฌด ๊ฒƒ๋„ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: ์˜ค๋ฅ˜: './../$$_gendir/src/app.module.ngfactory'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ ํ•ด์„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค).

๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜๋ฅผ ๋ฐ”๋กœ ์žก์œผ๋ ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@filipesilva ๊ทธ๋Ÿด์ง€๋„ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฐ•ํ•œ ์˜์‹ฌ์ด ng ๋ฅผ) ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— AOT๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Œ์„ ํ™•์ธํ•˜๊ณ  _๋Œ€๋‹จํžˆ_ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์—ฌ์ „ํžˆ AOT์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ํ…œํ”Œ๋ฆฟ์ด ์—†๋Š” @Component ์„ @Directive ๋กœ ์ด๋™ํ•˜๋Š” ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค(์™œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค).

_์—…๋ฐ์ดํŠธ_ ์—ฌ์ „ํžˆ _prod_ ๋ฒˆ๋“ค์„ ์›ํ•˜๊ณ  ng ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•œ ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋‹ค์Œ์€ ๊ธฐ๋Šฅ์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒจํ‚ค์ง€๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

ng build --prod --aot=false

@filipesilva๋ฅผ ์ž˜ ์ฐพ์œผ
๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒƒ์€ ๋ชจ๋‹ฌ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—๋งŒ ์˜ํ–ฅ์„ ์ค๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๋ฐฉ๊ธˆ ์ฒซ ๋ฒˆ์งธ ๋ชจ๋‹ฌ์„ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ์ด๊ฒƒ์ด ์™œ ์ด ๋ฌธ์ œ๊ฐ€ '๊ฐ‘์ž๊ธฐ' ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์ฆ‰, ๋‹ค๋ฅธ ์•ฑ์€ ๋ชจ๋‹ฌ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด ์˜ค๋ฅ˜๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค...

@russelltrafford ๋Š” ๋ชจ๋‹ฌ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ

[email protected] ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

package.json "enhanced-resolve": "3.3.0"์— ๋‹ค์Œ ์ค„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค
npm install ๋ฐ ng build --prod ์‹คํ–‰
๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
Angular ํŒ€์ด ์ฐพ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์šด ์ด ์˜ค๋ฅ˜์— ์ค‘์š”์„ฑ์„ ๋ถ€์—ฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ng build --prod๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ฐœ์ธ ์–‘์‹ ๋ณ€์ˆ˜, ์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ๊ณต๊ฐœ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

ํ…œํ”Œ๋ฆฟ์—์„œ ์•ก์„ธ์Šคํ•˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ์›์„ ๋น„๊ณต๊ฐœ๊ฐ€ ์•„๋‹Œ ๊ณต๊ฐœ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค @ThalesMatoso

์ฟจ...์ด๊ฑด ์ž˜๋˜๊ฒ ์ง€๋งŒ, ๋” ํฐ ์‹œ์Šคํ…œ์„ ์–˜๊ธฐํ•˜๋ฉด ์™€์„œ ๋ฐฉํ•ดํ•˜๋ฉด ์•ˆ๋˜๋‚˜์š”? ์ •๋ง ์œ ์ผํ•œ ๋Œ€์•ˆ์ž…๋‹ˆ๊นŒ?

@ThalesMatoso ํ…œํ”Œ๋ฆฟ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‹ค์ œ๋กœ Angular์˜ ๋ Œ๋”๋ง ์—”์ง„์ด ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์™€ DOM์— ํ‘œ์‹œํ•˜๋Š” ์ง€์นจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ Œ๋”๋Ÿฌ๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜ ํด๋ž˜์Šค์™€ ๋ณ„๊ฐœ์ด๊ณ  ์™ธ๋ถ€์— ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ์ธ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•˜๋ฉด TypeScript ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ…œํ”Œ๋ฆฟ์—์„œ ์ฐธ์กฐ๋˜๊ฑฐ๋‚˜ @ViewChild ์™€ ๊ฐ™์€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ๊ฒƒ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ์„œ๋น„์Šค์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ ์š”์†Œ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” ๊ณต๊ฐœ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์€ Angular ๊ธฐ๋Šฅ/์š”๊ตฌ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. CLI์—๋งŒ ํ•ด๋‹น๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

npm i [email protected] ๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ? @angular/[email protected] ๋Š” [email protected] ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฉฐ [email protected] ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. npm์€ webpack์ด ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์–ป๋„๋ก ํ™•์‹คํžˆ ๊ฒฐ์ •ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[email protected] ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ๋Š”๋ฐ ํ•œ ๋ฒˆ ์ž‘๋™ํ–ˆ์ง€๋งŒ npm install ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์•ˆ์ •์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊ฐ€ ๋‹ค์†Œ ์–ด๋ ต์Šต๋‹ˆ๊นŒ?

@studds ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” enhanced-resolve ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

"enhanced-resolve"๋ฅผ ์„ค์น˜ํ•˜๋ฉด "^3.3.0"์ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” resolve 3.3.0 ๋ฐ ngtools webpack 1.6.2๋ฅผ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.
์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋จ

'๋ธŒ๋ผ์šฐ์ €' ํ•„๋“œ์— ์œ ํšจํ•œ ๋ณ„์นญ ๊ตฌ์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
์„ค๋ช… ํŒŒ์ผ ์‚ฌ์šฉ ํ›„: /Users/ui/package.json (์ƒ๋Œ€ ๊ฒฝ๋กœ: ./src/app/Components/selector)

"@angular/animations": "^4.3.6",
"@angular/cdk": "2.0.0-beta.8",
"@๊ฐ๋„/๊ณตํ†ต": "^4.3.6",
"@๊ฐ๋„/์ปดํŒŒ์ผ๋Ÿฌ": "^4.3.6",
"@angular/compiler-cli": "^4.3.6",
"@๊ฐ๋„/์ฝ”์–ด": "^4.3.6",
"@angular/forms": "^4.3.6",
"@angular/http": "^4.3.6",
"@angular/material": "^2.0.0-beta.8",
"@angular/platform-browser": "^4.3.6",
"@ngrx/core": "^1.0.2",
"@ngrx/effects": "^2.0.0",
"@ngrx/store": "^2.1.2",
"@ngtools/webpack": "^1.6.2",
"ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ": "^3.3.0",

๋งˆ์ง€๋ง‰์œผ๋กœ devDependencies "@angular/cli": "1.2.6" ๋ฐ ์ข…์†์„ฑ "enhanced-resolve": "3.3.0" ๋ฐ @angular/*:"^4.3.6"์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๊ฐ๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋™์•ˆ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

npm์„ ํ†ตํ•ด ๋„๊ตฌ์šฉ ํŒจํ‚ค์ง€ ์„ค์น˜.
npm ์˜ค๋ฅ˜! Windows_NT 10.0.10240
npm ์˜ค๋ฅ˜! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "--quiet" "์„ค์น˜"
npm ์˜ค๋ฅ˜! ๋…ธ๋“œ v6.10.0
npm ์˜ค๋ฅ˜! npm v3.10.10

npm ์˜ค๋ฅ˜! C:\Users\Sukeshu\AppData\Local\Tempnpm-3120-1165392c\registry.npmjs.org\jasmine-spec-reporter-\jasmine-spec-reporter-4.1.1.tgz์— ๋Œ€ํ•œ shasum ๊ฒ€์‚ฌ ์‹คํŒจ
npm ์˜ค๋ฅ˜! ์˜ˆ์ƒ: 5a6d58ab5d61bea7309fbc279239511756b1b588
npm ์˜ค๋ฅ˜! ์‹ค์ œ: 1cca12519560608e42bb4efd78f30d818740a4f9
npm ์˜ค๋ฅ˜! ๋ฐœ์‹ : https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.1.1.tgz
npm ์˜ค๋ฅ˜!
npm ์˜ค๋ฅ˜! ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋‹ค์Œ ์ฃผ์†Œ์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
npm ์˜ค๋ฅ˜! https://github.com/npm/npm/issues

npm ์˜ค๋ฅ˜! ์ง€์› ์š”์ฒญ ์‹œ ๋‹ค์Œ ํŒŒ์ผ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค.
npm ์˜ค๋ฅ˜! C:\Users\Sukeshu\Desktopng2\dappnpm-debug.log

ํŒจํ‚ค์ง€ ์„ค์น˜์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
ํŒจํ‚ค์ง€ ์„ค์น˜์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

"enhanced-resolve": "3.3.0"์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ๋งํ•ด์„œ... ๋งŒ์•ฝ ๋‹น์‹ ์ด prod build๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, shrinkwrap์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค... ๊ทธ๊ฒƒ์€ ์—ฌ๋Ÿฌ๋ถ„์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‹ค.

์ด ๋ฌธ์ œ๋Š” ๋‚ด ๊ฐ๋„ ๋นŒ๋“œ์— ngtools/webpack์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค... angular-cli๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํŠนํžˆ ngtools/webpack 1.5.3์„ ์‚ฌ์šฉํ–ˆ๊ณ  ๋ฌธ์ œ๋Š” ์ž์ฒด์ ์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค... ๋‹ค๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ....

๋”ฐ๋ผ์„œ ngtools/webpack์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ํ˜„์žฌ ๋ฒ„์ „ 1.5.3์„ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์–ด๋–ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋“  ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

angular/cli๋ฅผ 1.2.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด์ „ cli๋กœ ๋งŒ๋“  Angular ์•ฑ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ์•ฑ์—์„œ ์ƒˆ๋กœ์šด package.json์„ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ์กด Angular ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ํŒจํ‚ค์ง€(๋‚ด ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์–ป์€ ์ฐจ์ด์ ) ์ค‘ ์ผ๋ถ€ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

diff seodemo/package.json aotdemo/package.json
2c2
<   "name": "seodemo",
---
>   "name": "aotdemo",
15,23c15,23
<     "@angular/animations": "^4.0.0",
<     "@angular/common": "^4.0.0",
<     "@angular/compiler": "^4.0.0",
<     "@angular/core": "^4.0.0",
<     "@angular/forms": "^4.0.0",
<     "@angular/http": "^4.0.0",
<     "@angular/platform-browser": "^4.0.0",
<     "@angular/platform-browser-dynamic": "^4.0.0",
<     "@angular/router": "^4.4.3",
---
>     "@angular/animations": "^4.2.4",
>     "@angular/common": "^4.2.4",
>     "@angular/compiler": "^4.2.4",
>     "@angular/core": "^4.2.4",
>     "@angular/forms": "^4.2.4",
>     "@angular/http": "^4.2.4",
>     "@angular/platform-browser": "^4.2.4",
>     "@angular/platform-browser-dynamic": "^4.2.4",
>     "@angular/router": "^4.2.4",
25,26c25,26
<     "rxjs": "^5.1.0",
<     "zone.js": "^0.8.4"
---
>     "rxjs": "^5.4.2",
>     "zone.js": "^0.8.14"
29,31c29,31
<     "@angular/cli": "1.2.0",
<     "@angular/compiler-cli": "^4.0.0",
<     "@angular/language-service": "^4.0.0",
---
>     "@angular/cli": "1.4.3",
>     "@angular/compiler-cli": "^4.2.4",
>     "@angular/language-service": "^4.2.4",
35c35
<     "codelyzer": "~3.0.1",
---
>     "codelyzer": "~3.1.1",
45c45
<     "ts-node": "~3.0.4",
---
>     "ts-node": "~3.2.0",

์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋œ๋‹ค๋ฉด:

์ด ๋ชจ๋“  ๊ฒƒ์„ ์ฝ์€ ํ›„ ์ข…์†์„ฑ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. "@angular/cli": "1.1.x",

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ—ˆ์šฉํ–ˆ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

Angular CLI 1.5.0์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Enhanced resolve 3.3.0๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋„ ์š”. ๊ณ„์† ๋ฐœ์ƒ: ์˜ค๋ฅ˜: './$$_gendir/app/app.module.ngfactory'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Angular CLI 1.5.0 ๋ฐ Enhanced resolve 3.3.0์„ ์‚ฌ์šฉํ•œ ํ›„์—๋„

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์—…๋ฐ์ดํŠธ ?

[email protected] ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€.json
{
"์ด๋ฆ„": "LENDZ",
"๋ฒ„์ „": "0.0.1",
"์ €์ž": "Ionic Framework",
"ํ™ˆํŽ˜์ด์ง€": " http://ionicframework.com/ ",
"๋น„๊ณต๊ฐœ": ์‚ฌ์‹ค,
"์Šคํฌ๋ฆฝํŠธ": {
"clean": "ionic-app-scripts clean",
"๋นŒ๋“œ": "ionic-app-scripts ๋นŒ๋“œ",
"lint": "ionic-app-scripts lint",
" ionic:build ": "ionic-app-scripts ๋นŒ๋“œ",
" ionic:serve ": "ionic-app-scripts ์ œ๊ณต"
},
"์ข…์†์„ฑ": {
"@angular/common": "5.0.0",
"@๊ฐ๋„/์ปดํŒŒ์ผ๋Ÿฌ": "5.0.0",
"@angular/compiler-cli": "5.0.0",
"@๊ฐ๋„/์ฝ”์–ด": "5.0.0",
"@angular/forms": "5.0.0",
"@angular/http": "5.0.0",
"@angular/platform-browser": "5.0.0",
"@angular/platform-browser-dynamic": "5.0.0",
"@ionic-๋„ค์ดํ‹ฐ๋ธŒ/์นด๋ฉ”๋ผ": "^4.4.2",
"@ionic-native/core": "4.3.2",
"@ionic-๋„ค์ดํ‹ฐ๋ธŒ/์ง„๋‹จ": "^4.5.2",
"@ionic-native/facebook": "^4.4.2",
"@ionic-native/file": "^4.4.2",
"@ionic-๋„ค์ดํ‹ฐ๋ธŒ/ํŒŒ์ผ ๊ฒฝ๋กœ": "^4.4.2",
"@ionic-native/geolocation": "^4.4.2",
"@ionic-native/google-maps": "^4.4.2",
"@ionic-native/http": "^4.4.2",
"@ionic-native/native-storage": "^4.4.2",
"@ionic-native/network": "^4.5.2",
"@ionic-native/onesignal": "^4.5.2",
"@ionic-native/push": "^4.4.2",
"@ionic-native/splash-screen": "4.3.2",
"@ionic-native/status-bar": "4.3.2",
"@ionic-native/stripe": "^4.5.2",
"@ionic-๋„ค์ดํ‹ฐ๋ธŒ/์ „์†ก": "^3.14.0",
"@ionic/storage": "^2.1.3",
"angular2-moment": "^1.7.0",
"์ฝ”๋ฅด๋„๋ฐ” ์•ˆ๋“œ๋กœ์ด๋“œ": "6.3.0",
"์ฝ”๋ฅด๋„๋ฐ” ๋ธŒ๋ผ์šฐ์ €": "~5.0.1",
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ์นด๋ฉ”๋ผ": "^3.0.0",
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ์žฅ์น˜": "^1.1.4",
"cordova-plugin-facebook4": "^1.9.1",
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ": "^5.0.0",
"cordova-plugin-file-transfer": "^1.7.0",
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ ๊ฒฝ๋กœ": "^1.1.0",
"cordova-plugin-geolocation": "^3.0.0",
"cordova-plugin-googlemaps": "^2.1.1",
"cordova-plugin-inappbrowser": "~1.7.2",
"cordova-plugin-ionic-webview": "^1.1.11",
"cordova-plugin-nativestorage": "^2.2.2",
"cordova-plugin-network-information": "^1.3.4",
"cordova-plugin-splashscreen": "^4.0.3",
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ŠคํŠธ๋ผ์ดํ”„": "^1.5.3",
"cordova-plugin-whitelist": "^1.3.1",
"cordova-sqlite-storage": "^2.1.2",
"cordova.plugins.diagnostic": "^3.7.2",
"ํ–ฅ์ƒ๋œ ํ•ด๊ฒฐ": "^3.4.1",
"์ด์˜จ ๊ฐ๋„": "3.9.2",
"์ด์˜จ-ํ”Œ๋Ÿฌ๊ทธ์ธ-ํ‚ค๋ณด๋“œ": "^2.2.1",
"ionic2-๋“ฑ๊ธ‰": "^1.2.2",
"์ด์˜ค๋‹ˆ์•„์ฝ˜": "3.0.0",
"onesignal-cordova-plugin": "^2.2.4",
"rxjs": "5.5.2",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "^3.1.7",
"ํƒ€์ดํ”„์Šคํฌ๋ฆฝํŠธ": "2.4.2"
},
"์„ค๋ช…": "Ionic ํ”„๋กœ์ ํŠธ",
"์ฝ”๋ฅด๋„๋ฐ”": {
"ํ”Œ๋Ÿฌ๊ทธ์ธ": {
"cordova-plugin-device": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-whitelist": {},
"์ด์˜จ-ํ”Œ๋Ÿฌ๊ทธ์ธ-ํ‚ค๋ณด๋“œ": {},
"cordova-plugin-facebook4": {
"APP_ID": "xxxxxxxxxxxx",
"APP_NAME": "LENDZ"
},
"cordova-plugin-nativestorage": {},
"cordova-sqlite-storage": {},
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ์นด๋ฉ”๋ผ": {},
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ": {},
"cordova-plugin-file-transfer": {},
"cordova-plugin-filepath": {},
"cordova-plugin-googlemaps": {
"API_KEY_FOR_ANDROID": "xxxxxxxxxxxxxxxxxxxxxx",
"API_KEY_FOR_IOS": "xxxxxxxxxxxxxxxxxxxx"
},
"cordova-plugin-geolocation": {},
"onesignal-cordova-plugin": {},
"cordova.plugins.diagnostic": {},
"cordova-plugin-network-information": {},
"cordova-plugin-inappbrowser": {},
"์ฝ”๋ฅด๋„๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ŠคํŠธ๋ผ์ดํ”„": {}
},
"ํ”Œ๋žซํผ": [
"๋ธŒ๋ผ์šฐ์ €",
"๊ธฐ๊ณ„์  ์ธ์กฐ ์ธ๊ฐ„"
]
}
}
๋„์™€์ฃผ์„ธ์š”

@cbeaujoin์ด ์ž˜ ๋งํ–ˆ๋“ฏ์ด. ์ด๋Œ€๋กœ ๋‘๋ฉด ๋ฌธ์ œ ์—†์ด AOT๋กœ ๋นŒ๋“œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    @angular/*:"^4.3.6"
    "enhanced-resolve": "3.3.0"
devDependencies
    "@angular/cli": "1.2.6"
    "typescript": "^2.3.4"

์ €์—๊ฒŒ๋Š” ํƒ€์ดํ”„์Šคํฌ๋ฆฝํŠธ๊ฐ€ 2.3.4์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๊ณ , ๋ฌด์—‡๋ณด๋‹ค๋„ ๋นŒ๋“œ ์‹œ๊ฐ„์ด ์•ฝ 29๋ถ„์ด ๊ฑธ๋ฆฌ๊ธฐ ์ „์— ๋นŒ๋“œ ์‹œ๊ฐ„์ด ์•ฝ 6:35๋กœ ํฌ๊ฒŒ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•œ๋™์•ˆ ์ด๋Œ€๋กœ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

[email protected]์ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋Š” ํ™œ๋™์ด ์—†์–ด ์ž๋™์œผ๋กœ ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค.
์œ ์‚ฌํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

์ž๋™ ๋Œ€ํ™” ์ž ๊ธˆ ์ •์ฑ… ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

_์ด ์ž‘์—…์€ ๋ด‡์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค._

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰