ããã«ã¡ã¯ïŒ ãããžã§ã¯ãããšã«è€æ°ã®tsconfig.json
ã䜿çšããããšã¯å¯èœã§ãããã€ãŸããã«ãŒããã£ã¬ã¯ããªã«ãããããžã§ã¯ãå
šäœã®tsconfig.json
ãšããµããã£ã¬ã¯ããªã«ããè¿œå ã®tsconfig.json
ãã¡ã€ã«ã䜿çšã§ããŸãã /ãã®ãã£ã¬ã¯ããªã®ããã€ãã®ãªãã·ã§ã³ã調æŽããŸããïŒ .gitignore
ããã«ã
ããšãã°ã node
ç°å¢ã§å€éšã¢ãžã¥ãŒã«ãéçºããå Žåã«éåžžã«åœ¹ç«ã¡ãŸãã ãã®ãããªã¢ãžã¥ãŒã«ã¯éåžžãè€æ°ã®ãã¡ã€ã«ïŒå
éšã¢ãžã¥ãŒã«ïŒã«åå²ãããŸãããã³ã³ãã€ã«æ®µéã§1ã€ã®å€§ããªãã¡ã€ã«ã«ã³ã³ãã€ã«ãããŸãã
ãã@lazutkinã çŸåšã¯ãµããŒããããŠããŸããããå€å°é¢é£ããŠããããããã®åé¡ãïŒ2869ã«ãªã³ã¯ããããšæããŸãã
ãã©ã«ããŒå
ã«åŒæ°ãªãã§tsc
ãå®è¡ããŠããå Žåãã³ã³ãã€ã©ãŒã¯ãäœæããŠãããã©ã«ããŒã«æãè¿ãtsconfig.jsonãéžæããŸãã ãããã£ãŠãtsconfig.jsonãå«ãå
éšãã£ã¬ã¯ããªãããå Žåã¯ãå€éšãã£ã¬ã¯ããªã®ãã£ã¬ã¯ããªãããåã«ååŸãããŸãã
è€æ°ã®tsconfig.jsonããã®çµ±å/æ§æã®ãªãŒããŒã©ã€ãããµããŒããããšã¯æããŸããã
倧èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºã¢ããªã«ã¯ãè€æ°ã®tsconfigãã¡ã€ã«ãäžå¯æ¬ ã§ãã
ææ¡ïŒtscããµããã£ã¬ã¯ããªã§æ°ããtsconfigãã¡ã€ã«ãèŠã€ãããã³ã«ãtscã¯ããã§åæ¢ããç¬èªã®tsconfigãã¡ã€ã«ã䜿çšããŠæ°ããtscããã»ã¹ãäœæããŸãã
@Eisenspalterããã¯ãgruntã
@mhegazy @Eisenspalterã«åæããŸããã©ã¡ãããã«ãããã»ã¹ã«ã€ããŠã§ã¯ãªãããã«ãåã«å®äºããå¿
èŠã®ãããœãŒã¹ã®äœæããã¹ãããã®ä»ã®ã¢ã¯ãã£ããã£ãå«ãéçºããã»ã¹ã«ã€ããŠè©±ããŠããããã§ãã ãã®ãã¹ãŠã®äžéã¹ãããã§ã¯ãã€ã³ããªã»ã³ã¹ãã¿ã€ããã§ãã¯ãªã©ãå«ãtypescript
ããã®ãµããŒããå¿
èŠã§ããããã«ãåã«è¿°ã¹ãããã«ããããžã§ã¯ãã®ããŸããŸãªéšåã«ãããŸããŸãªãœãŒã¹ç·šæææ³ïŒå€éš-å
éšã¢ãžã¥ãŒã«ãåäžïŒãé©çšããããšæããŸããåºåãã¡ã€ã«ãªã©ïŒãããã§ã¯ãåå¥ã®tsconfigã§ãªãŒããŒã©ã€ãããããã€ãã®ãªãã·ã§ã³ãå¿
èŠã§ãã
@mhegazyãªãéããã®ã§ããïŒ å床éããŠãã ããã
ä»æ¥ãè€æ°ã®tsconfigã䜿çšã§ãããããããéè€ãããã¡ã€ã«ã®ã»ãããæããŠããŸãã ãããã£ãŠã1ã€ã¯srctsconfig.jsonã«ããã1ã€ã¯teststsconfig.jsonãªã©ã«ãããŸããã³ã³ãã€ã©/ããŒã«ã¯ããã£ã¬ã¯ããªããªãŒãäžã£ãŠæãè¿ããã¡ã€ã«ãèŠã€ããããšã«ããããã¡ã€ã«ãèŠã€ããŸãã ãããã£ãŠãã«ãŒãã«3çªç®ã®ãã¡ã€ã«ãäœæããŠãã¹ãŠããã£ããã§ããŸãã
ããã¯ãã¹ãŠãã³ã³ãã€ã©ãšããŸããŸãªIDEã§ä»æ¥æ©èœããŸãã å ã ã®åé¡ã¯ããã¡ã€ã«ãå¥ã®ãã¡ã€ã«ããç¶æ¿ã§ããããã«ããããšã§ããã è€éããæ£åœåããååãªäŸ¡å€ããããšã¯æããŸããã
2çªç®ã®åé¡ã®å ŽåïŒ
tscããµããã£ã¬ã¯ããªã§æ°ããtsconfigãã¡ã€ã«ãèŠã€ãããã³ã«ãtscã¯ããã§åæ¢ããç¬èªã®tsconfigãã¡ã€ã«ã䜿çšããŠæ°ããtscããã»ã¹ãäœæããŸãã
åã«è¿°ã¹ãããã«ãtsconfig.jsonã¯ãtsc.js / tsc.exeãžã®åäžã®åŒã³åºããè¡šããŸããè€æ°ã®åŒã³åºããå®è¡ããå Žåã¯ããã«ããã©ã€ããŒã䜿çšããå¿ èŠããããŸãã
@lazutkinãš@Eisenspalterã¯ããã質åã«çããŸãã
@mhegazy
è€æ°ã®tsconfig.jsonãæ©èœãããããšãã§ããŸããã§ããã å°ãªããšãTypeScript1.7.3ã§ã¯ã1ã€ã®tsconfig.jsonã®ã¿ãèªã¿åããããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªïŒãŸãã¯èŠªïŒã«ããããšãæåŸ
ãããŸãã
@Ziinkäžèšã®ç§ã®ã³ã¡ã³ãã¯ãåããããžã§ã¯ãå ã®è€æ°ã®tsconfigã«é¢ãããã®ã§ã¯ãããŸããã§ããã ããã¯ããããããç°ãªãtsconfigãæã€è€æ°ã®ãããžã§ã¯ã/ãã£ã¬ã¯ããªã«é¢ãããã®ã§ããã ããã¯ãtsãããžã§ã¯ãã®ã¬ã€ã¢ãŠãæ¹æ³ã§ããhttpsïŒ//github.com/Microsoft/TypeScript/tree/master/srcãåç §ããŠ
TypeScriptã§èšè¿°ããããããžã§ã¯ãããããäž¡æ¹ãã¿ãŒã²ããã«ãããïŒ
/browser
ãã¡ã€ã«ãšããŸãããïŒãšserver
å
ã®ãã¡ã€ã«ïŒãããšãã°ãïŒ /common
ïŒãã©ã«ãã«ããã€ãã®å
±æãã¡ã€ã«ãããã common
ããbrowser
ããã³server
ãžã®ã€ã³ããŒãããããŸãã
IDEãµããŒãããã¹ãŠã®ãšã©ãŒãªã©ãä¿æãããã®ãããªæ§æãã©ã®ããã«éæã§ããŸããïŒ è°è«ãç§ã®çåã«çãããã©ããã¯ããããŸããã
@bartq TS 1.8ã§ã¯ã2ã€ã®tsconfigãã¡ã€ã«ãäœæããŸãã1ã€ã¯ãã©ãŠã¶ãŒçšããã1ã€ã¯ãµãŒããŒçšã§ãäž¡æ¹ã®ãµããããžã§ã¯ãã®ãã¡ã€ã«ã«///åç §ãå ±éã®ãã®ã«è¿œå ããŸãã è©ŠããŠã¿ãŠããããã·ããªãªã«å¯Ÿå¿ããŠãããããŸã äžè¶³ããŠããéšåããããã©ããããç¥ãããã ããã
å®éãç§ã¯ããã2ã€ã®tsconfig.json
ãã¡ã€ã«ã䜿çšããŠããŸãããWebStormã¯ããããæ€åºããã³ã³ãã€ã«ãèªåçã«å®è¡ããŸãã æ£ç¢ºã«ã¯ãããã¯ãšã³ãã³ãŒãã¯ããã³ããšã³ãã³ãŒãããããã€ãã®ã¯ã©ã¹ãã€ã³ããŒãããŸãïŒä»£ããã«common
æŠå¿µã䜿çšããŸãïŒãããã¹ãŠæ£åžžã«æ©èœããŸãã
ç§ã¯ã€ãã«è§£æ±ºçãæã«å ¥ããŸããã
ç§ã®ã¢ããªã±ãŒã·ã§ã³æ§é ïŒ
--app /--app / client /ïŒç§ã®ã¯ã©ã€ã¢ã³ãåŽã®ãœãŒã¹ã³ãŒãïŒ--app / server /ïŒãµãŒããŒåŽã®ãœãŒã¹ã³ãŒãïŒ--app / build /ïŒjsãçæããå ŽæïŒ--app / node-modules /--app / package.json--app / tsconfig.server.json--app / tsconfig.client.json
tsconfig.server.jsonã®å
容ïŒ
{"compilerOptions"ïŒ{...ã "outDir"ïŒ_ "build / server" _}ã"exclude"ïŒ["node_modules"ã "client"]}
tsconfig.client.jsonã®å
容ïŒ
{"compilerOptions"ïŒ{...ã "outDir"ïŒ "build / client"}ã"exclude"ïŒ["node_modules"ã "server"]}
次ã«ããµãŒããŒã®ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ããå Žåã¯ãã¢ããªã®ã«ãŒããã£ã¬ã¯ããªãã次ã®ã³ãã³ãã䜿çšããŸãã
ãŸããã«ãŒãã¢ããªãã£ã¬ã¯ããªããã¯ã©ã€ã¢ã³ããœãŒã¹ã³ãŒããã³ã³ãã€ã«ããã«ã¯ïŒ
ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã®ã³ã³ãã€ã«ãå®è¡ããããã«ãpackage.jsonã«ã³ãã³ããè¿œå ããŸããã
"scripts"ïŒ{...ã "tsc"ïŒ "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json"ã...}
次ã«ããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ãã³ã³ãã€ã«ããããã«ãã«ãŒãã¢ããªãã£ã¬ã¯ããªãããããå®è¡ããŸãã
ãã®ã³ã¡ã³ããã圹ã«ç«ãŠã°å¹žãã§ã:-)
ããã§äœãåé¡ãªã®ãããããŸããã ç°ãªããã¡ã€ã«åã®æ§æããµããŒãã§ããªãã®ã¯ãªãã§ããïŒ å¥ã®tsconfigãã¡ã€ã«ãã«å ¥ããããã ãã«subFoldersãäœæããªããã°ãªããªãã®ã¯é¢åã§ãã
ããªãã¯ã§ããã --påŒæ°ã¯ãã¡ã€ã«åã«ããããšãã§ããŸãã
ãã ããç°ãªããã¡ã€ã«åã¯ããã®ãŸãŸã§ã¯Visual Studioã¿ã€ãã¹ã¯ãªããã³ã³ãã€ã©æ¡åŒµæ©èœïŒCLIã«ã€ããŠã¯èª¬æããŠããŸããïŒã§ã¯æ©èœããŸããã ãããè¡ãå¯äžã®æ¹æ³ã¯ãåtsconfig.jsonããããŒãã£ã¬ã¯ããªã«é
眮ãã files
ãªãã·ã§ã³ã䜿çšããŠå¿
èŠãªã¿ã€ãã¹ã¯ãªããã«ãªã³ã¯ããããšã§ãã
äŸãã°
--src / target / search / tsconfig.json
--src / target / core / tsconfig.json
--src / target / users / tsconfig.json
target / search /tsconfig.jsonã¯æ¬¡ã®ããã«ãªããŸãã
{
"compilerOptions": {
"outFile": "../../../build/app/search.js"
},
"files": [
"../../src/common",
"../../src/search"
]
}
ãããŠãä»ã®ãã®ãåæ§ã§ãã
ããã«ãããããããç¬èªã®ãã¡ã€ã«æ§æãæã€3ã€ã®JavaScriptãã¡ã€ã«ã1ã€ã«ãã³ãã«ãããŠçæãããŸãã
ãã¡ãããTypescriptã³ã³ãã€ã©èªäœãšã¯ç°ãªããã³ãã«/æå°å/ããã±ãŒãžã³ã°ã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšãã§ããŸãã
Typescriptã³ã³ãã€ã©ãæé©åã§æ¬åœã«è¯ãä»äºãããŠãããšããã ãã§ã-ããã¯Typescriptã䜿çšããããšã®æ倧ã®é åã®1ã€ã§ãã
ãããã£ãŠãåäžã®tsconfig.jsonãtsconfigsã®é åã«å€æŽããã ãã§ãè€æ°ã®æ§æããµããŒãã§ãããšäŸ¿å©ã§ãã
[
{
"compilerOptions": {
"outFile": "../../build/search.js"
},
"files": [
"src/common",
"src/search"
],
"compileOnSave": true
},
{
"compilerOptions": {
"outFile": "../../build/core.js"
}
"files": [
"src/common",
"src/core"
],
"compileOnSave": true
}
]
ããã¯ããã®åé¡ã®åŸã®ã³ã¡ã³ãã§èŠæ±ãããŠããããã«èãããŸãããç§ã¯åæããŸãããå ã®åé¡ã¯ç¶æ¿ãšæ§æã®ãªãŒããŒã©ã€ãã«é¢ãããã®ã§ããã
@mhegazy @bartq tsc
ã³ãã³ãã§åäœãããããšã¯ã§ããŸããã
ç§ã¯æ¬¡ã®ãã£ã¬ã¯ããªæ§é ãæã£ãŠããŸã
-- app/
-- app/server -- here I want es6/commonjs
-- app/server/tsconfig.json
-- app/client -- here I want es6/es6
-- app/client/tsconfig.json
-- app/tsconfig.json
ç§ãå®è¡ãããšãã«ããŸã ã tsc
ã®ã¿ããconfigã³ã³app/tsconfig.json
䜿çšãããæ®ãã¯ç¡èŠãããŸãã ç§ã¯ãããVSCodeã§åäœãããããšããŠããŸãïŒ/
@tomitrescakç§ã¯WebStormã䜿çšããŠãããæãè¿ãtsconfig.jsonãèŠã€ããŠããã¡ã€ã«ãç·šéãããšãã«ããã䜿çšããã®ã«ååã€ã³ããªãžã§ã³ãã§ãã ãããããè€æ°ã®tsconfig.jsonã®ç£èŠããµããŒãããcmdããŒã«ã¯ãããŸããã ããšãã°ãFBãŠã©ãããã³ã䜿çšããŠå±éã§ããŸãã
ãããç§ã¯VSCodeã§ãã®ãããªãã®ã欲ããã§ãã ã¿ãŒããã«ã§ã³ã³ãã€ã«ãå®è¡ããŠããŸãã åæ§ã«åäœããŸãã VS Codeã¯ããšã«ãããšã©ãŒãæ£ããèå¥ããŸãã
è€æ°ã®èšå®ãããã°çŽ æŽãããã§ãããã ç§ã¯React-Nativeãããžã§ã¯ãã«åãçµãã§ãããåºæ¬çã«2ã€ã®ãã«ããå®è¡ããããšæã£ãŠããŸãã
æ§æã®ç¶æ¿ã¯TS2.1ã§è¿œå ãããä»æ¥typescript@next
ã§å©çšã§ããããã«ãªãã¯ãã§ãã 詳现ã«ã€ããŠã¯ã httpsïŒ//github.com/Microsoft/TypeScript/issues/9876ãåç
§ããŠãã ããã ããã«ãããããã¹ã¿ãŒãtsconfig.jsonãäœæããããããæ§æãç¶æ¿ãããã®ããªãŒããŒã©ã€ãã§ããŸãã ããã§ãè€æ°ã®tsconfig.jsonãã¡ã€ã«ãäœæããå¿
èŠããããŸãããIDEã¯ããããååŸããå¿
èŠããããŸãã
ç§ã¯æ¬¡ã®ãã£ã¬ã¯ããªæ§é ãæã£ãŠããŸãïŒ
âââ examples
â âââ files...
â âââ tsconfig.json
âââ src
â âââfiles...
âââ tsconfig.json
ã«ãŒãtsconfig.json
ã¯æ¬¡ã®ãã®ããããŸãã
{
"compilerOptions": {
"target": "es2015",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"declaration": true,
"allowJs": false
},
"include": [
"./src"
],
"compileOnSave": false,
"buildOnSave": false,
"atom": { "rewriteTsconfig": false }
}
examples/tsconfig.json
ã¯ã次ã®ç¹ãé€ããŠåãå€ã§ãã
"include": [
"./hello-world"
],
ç§ãããæïŒ
cd examples
tsc
ã³ã³ãã€ã«ããŸãïŒ
âââ examples
â âââ dist
â â âââ examples
â â âââ src
â âââ files...
â âââ tsconfig.json
âââ src
â âââ files...
âââ tsconfig.json
ïŒ dist
ééã£ãŠãããšãå€éšãã©ã«ããŒsrc
ãå«ãŸããã«ãŒããã©ã«ããŒå
ããã³ã³ãã€ã«ãããŸãïŒ
ãããå©ããªãïŒ examples/tsconfig.json
ïŒïŒ
"exclude": [
"../src"
],
ç§ã¯äœãééã£ãŠããã®ã§ããïŒ
åé¡ãèŠã€ãããŸããã ç§ã®examples/hello-world/any-file*.ts
ãã®ã€ã³ããŒããããå ŽåïŒ
import { SomeClass } from '../../src';
äžèšã®åé¡ãçæããŸãã 次ã®ã€ã³ããŒãã¯æåŸ ã©ããã«æ©èœããŸãã
import { SomeClass } from '../../';
ããããtypescriptã®ãã£ã¬ã¯ãã£ãinclude
æåŸ
ã©ããã«æ©èœããªãã®ã¯ãªãã§ããïŒ
åããªã
åããã©ã«ããŒã«tsconfig.jsonããããŸããããèŠåïŒèŠªtsconfig.jsonãèŠã€ãã
@zhukovkaããŒã«ã«ã§å®è¡ã§ããã¹ã¿ã³ãã¢ãã³ã®åçŸã§æ°ããåé¡ããã°ã«èšé²ããŠãã ãã
@RyanCavanaughããã ãããã§ãç§ã¯ãããç解ããŸãã
ãã®åé¡ã¯ããã¹ããã©ã«ããŒïŒtsconfig.jsonãå«ãŸãªãïŒãã1ã€ã®ãã¡ã€ã«ãéãã 'src'ãã©ã«ããŒïŒtsconfig.jsonãå«ãïŒã§2çªç®ã®ãã¡ã€ã«ãéããå Žåã«ã®ã¿åçŸãããŸãã
ãã¹ããã©ã«ãã®ãã¡ã€ã«ã¯ãsrcãã©ã«ãã®ãã¡ã€ã«ãã€ã³ããŒãããŸãã ãã®å Žåãsrcãã©ã«ããŒã®ãã¡ã€ã«ã«ã¯ã芪tsconfig.jsonãã衚瀺ãããŸããã
@RyanCavanaughãããã€ãã®ç°ãªãtsconfig.jsonã®ã§ã³ã³ãã€ã«ããããã®ãµããŒããããããšæãäœãéçºããç¶ããŠããããã§ãã ç§ã®å Žåãäžè¬çã«ã¯ãçæãããåºåãã¡ã€ã«ã®ç§»åå
ãå€æŽããããšã«ã€ããŠã§ãã ã³ãŒãçæãæ¢åã®paths
ãããã³ã°ã®ãããªãã®ã§å¶åŸ¡ã§ããã°ãçæãããã³ãŒãããœãŒã¹ãšã¯ç°ãªãæ¹æ³ã§ã¬ã€ã¢ãŠãã§ããããã«ãªããè€æ°ã®ãããžã§ã¯ãã®å¿
èŠæ§ãæžãå¯èœæ§ããããŸãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ãããå³å¯ãªåãã§ãã¯ã«ãŒã«ã«èããããªã倧ããªã¬ã¬ã·ãŒã³ãŒãããŒã¹ããããå³å¯ãªãã§ãã¯ãæå¹ã«ãªã£ãŠããæ°ããã³ãŒãããŒã¹ã§äœ¿çšãããã®ã§ãããã¬ã¬ã·ãŒã³ãŒããã³ã³ãã€ã«ã§ããŸãããã©ã€ãã©ãªã«ã¯ããšã¯ã¹ããŒãçšã®åã«ååãä»ããããã«å¿ èŠãªãã¹ãŠã®åãã€ã³ããŒãããªãã±ãŒã¹ã100äžä»¶ããããã§ãïŒïŒ9944ïŒã ãããã£ãŠãã¬ã¬ã·ãŒã³ãŒãããŒã¹ãæ°ããã³ãŒãããŒã¹ã«è¿œå ãããã®ã§ãããç·©ãã«ãŒã«ã«åŸã£ãŠã³ã³ãã€ã«ãããŠããŸãã ããã2ã€ã®ç°ãªãã³ã³ãã€ã«æé ã«ããããšã¯ã§ããŸããã ã³ã³ãã€ã©ãç¹å®ã®ãã£ã¬ã¯ããªã®äžã®ãœãŒã¹ãã¡ã€ã«ã§äœæ¥ããŠãããšãã¯ãlaxerã«ãŒã«ã䜿çšããå¿ èŠããããŸãã
ç§ã®å ŽåããŠãŒã¹ã±ãŒã¹ã¯ãããŒãã䜿çšããŠå®è¡ãããcommonjsã¢ãžã¥ãŒã«ã«ã³ã³ãã€ã«ããå¿
èŠããããªããžããªã®äžéšãæã¡ãES6ã§ããªãŒã·ã§ã€ã¯ãæå¹ã«ããããã«ä»ã®éšåãES6ã¢ãžã¥ãŒã«ã«ã³ã³ãã€ã«ããå¿
èŠããããŸãã ç§ã®å Žåãçµéšã¯çŽ æŽããããã®ã§ã¯ãããŸããã TS_NODE_PROJECT
ç°å¢å€æ°ã䜿ã£ããããã³ââã°ããããããããŸãã ç§ãæçµçã«ãããžã§ã¯ããå€æŽãããšãã«ããããç¶æããŠãã次ã®äººã®å°çãæ··ä¹±ãããå¯èœæ§ããããã®ã®ããã«æããŸãã
ç§ã¯ãŸã ããã解決ãããã®ãèŠããã§ãã ãããžã§ã¯ãå
ã®ã¢ãžã¥ãŒã«ããšã«ç°ãªãtsconfig.json
ãã¡ã€ã«ãå¿
èŠãšãã倧èŠæš¡ãªãããžã§ã¯ãã«ãšã£ãŠã¯å€§ããªã¡ãªããã«ãªããŸãã
@Robinfr extends
æ©èœã§è§£æ±ºã§ããªããã®ã¯äœã§ããïŒ
ããŸããã ç§ã¯ãã®æçš¿ã®åŸã§ããã«ã€ããŠç¥ããŸããã ãã ãã泚æãã¹ãç¹ã®1ã€ã¯ã include
ããkãwebpackãééãããããéåžžã¯å¿
èŠã®ãªããã¡ã€ã«ã«èšå®ããªããšæ©èœããªãã£ãããšã§ãã
Op 159æ 2017幎9æ24ååschreefããããœã³ã±ãªãŒ[email protected] ïŒ
@Robinfr https://github.com/robinfræ¡åŒµæ©èœhttps://www.typescriptlang.org/docs/handbook/tsconfig-json.html#configuration-inheritance-with-extendsã§è§£æ±ºã§ããªããã®ã¯äœã§ããïŒ
â
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHub https://github.com/Microsoft/TypeScript/issues/3645#issuecomment-329703706ã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŠãã ããhttps://github.com/notifications/unsubscribe-auth/AD90FLZKcHMJeFU0osJroT_yawlC1oTIks5siiZFgaJpZM4FM
@kitsonkæ¡åŒµã¯ããŸãæ©èœããŸãããäœãåé¡ããªãå Žåã¯ãäž¡æ¹ã®æ§æã§ç¹å®ã®èšå®ïŒbuildãã©ã«ããŒãšnode_modulesãã©ã«ããŒãé€ãïŒãç¹°ãè¿ãå¿
èŠããããŸãã ç§ã«ãšã£ãŠæ倧ã®åé¡ã¯ãã©ã®æ§æãã¡ã€ã«ãæ£ãããããã¹ãŠã®ããŒã«ãèªèããŠããããšã確èªããããšã§ãïŒéåžžã TS_NODE_PROJECT
ç°å¢å€æ°ãªã©ã䜿çšããŸãããã1ã€ã¯ã2ã€ã®tsconfigã䜿çšããŠãããžã§ã¯ããéãå Žåã§ãã VS.codeã䜿çšãããããžã§ã¯ããã¡ã€ã«ãVSã«æ瀺ããæ¹æ³ã¯ãããŸãããã€ãŸãã察å¿ããtsconfigå
ã®ãã¡ã€ã«ã®èšå®ãç°ãªããããäžéšã®ãã¡ã€ã«ã§ã¯ãšã©ãŒã«æ£ããäžç·ãåŒãããŸããïŒããšãã°ãäœãtsconfig.build.jsonã®ããã«ïŒã
@voyã¯ããã«ãçšã«ç°ãªãtsconfigãããçç±ãå°ããŠãããã§ããïŒ ç§ãç解ããŠããéããVSCodeã¯ãç·šéããŠãããã¡ã€ã«ã«æãè¿ãtsconfigãã¡ã€ã«ïŒ tsconfig.json
ïŒã䜿çšããŸãã ç§ããããŸã§ã«æ±ããŠããå¯äžã®åé¡ã¯ãVSCodeãæ§æã®äœ¿çšãéå§ããåã«ãã«ãŒãã«tsconfigãã¡ã€ã«ãå¿
èŠãªããšã§ã...
@Robinfr確ãã«ã åããªããžããªã«ãwebpackãšbabelã䜿çšããŠåŠçãããES6ã¢ãžã¥ãŒã«ã䜿çšããŠããªãŒã·ã§ã€ã¯ãæå¹ã«ãããã¡ã€ã«ããããŸãã ä»ã®ãã¡ã€ã«ã¯ãã«ãããã»ã¹ã®äžéšã§ãããããŒãã䜿çšããŠå®è¡ãããŸãããã®ãããã€ã³ããŒããrequiresã«ãã©ã³ã¹ãã€ã«ããå¿ èŠããããŸãã ã©ãããã°ãããåé¿ã§ãããããããŸããã
@voyã¯ããããã®ãã¡ã€ã«ãå¥ã®ãã©ã«ããŒã«çœ®ããŠããã ãã§ã¯ãããŸãããïŒ ããšãã°ããã¹ãŠã®Babelããã³webpackãã¡ã€ã«çšã«1ã€ã®ãã©ã«ããŒãããŒããã¡ã€ã«çšã«1ã€ã®ãã©ã«ããŒã 次ã«ããããã®ãã©ã«ããŒããšã«tsconfig.jsonãäœæã§ããŸãã ããã¯ããªãã®ããã«åããŸãããïŒ
@Robinfrã¯çæ³çã§ãããçŸå®ã®äžçã§ã¯åžžã«å¯èœã§ãããšã¯éããŸããã ããšãã°ããã¹ãŠã®æ§æãã¡ã€ã«ãtypescriptã§ããããã¹ãŠã®TypeScriptã³ãŒãããŒã¹ãšãŸã£ããåãã«ãŒã«ã«åŸã£ãŠã³ã³ãã€ã«ããã³ãªã³ããããäžéšã®ãã¡ã€ã«ã¯ãããžã§ã¯ãã®ã«ãŒãã«ããå¿ èŠããããŸãã ã·ã³ããªãã¯ãªã³ã¯ããããšãã§ããŸãããããã«ãã£ãŠä»ã®åé¡ãçºçããããšããããŸãã ã ããããããã£ãšæè»ãªãã®ãããã°ãããšæããŸãã
æãåèã«ãªãã³ã¡ã³ã
ç§ã¯ã€ãã«è§£æ±ºçãæã«å ¥ããŸããã
ç§ã®ã¢ããªã±ãŒã·ã§ã³æ§é ïŒ
--app /--app / client /ïŒç§ã®ã¯ã©ã€ã¢ã³ãåŽã®ãœãŒã¹ã³ãŒãïŒ--app / server /ïŒãµãŒããŒåŽã®ãœãŒã¹ã³ãŒãïŒ--app / build /ïŒjsãçæããå ŽæïŒ--app / node-modules /--app / package.json--app / tsconfig.server.json--app / tsconfig.client.json
tsconfig.server.jsonã®å 容ïŒ
{"compilerOptions"ïŒ{...ã "outDir"ïŒ_ "build / server" _}ã"exclude"ïŒ["node_modules"ã "client"]}
tsconfig.client.jsonã®å 容ïŒ
{"compilerOptions"ïŒ{...ã "outDir"ïŒ "build / client"}ã"exclude"ïŒ["node_modules"ã "server"]}
次ã«ããµãŒããŒã®ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ããå Žåã¯ãã¢ããªã®ã«ãŒããã£ã¬ã¯ããªãã次ã®ã³ãã³ãã䜿çšããŸãã
tsc --p tsconfig.server.json
ãŸããã«ãŒãã¢ããªãã£ã¬ã¯ããªããã¯ã©ã€ã¢ã³ããœãŒã¹ã³ãŒããã³ã³ãã€ã«ããã«ã¯ïŒ
tsc --p tsconfig.client.json
ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ã®ã³ã³ãã€ã«ãå®è¡ããããã«ãpackage.jsonã«ã³ãã³ããè¿œå ããŸããã
"scripts"ïŒ{...ã "tsc"ïŒ "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json"ã...}
次ã«ããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ãã³ã³ãã€ã«ããããã«ãã«ãŒãã¢ããªãã£ã¬ã¯ããªãããããå®è¡ããŸãã
npm run tsc
ãã®ã³ã¡ã³ããã圹ã«ç«ãŠã°å¹žãã§ã:-)