æ°çŸã®ãã¡ã€ã«ãšãã¹ãããããµããã£ã¬ã¯ããªã®å€ãã®ã¬ã€ã€ãŒãããäœæ¥äžã®ãããžã§ã¯ãã§VSCodeã䜿çšããŠããŸãã äžè¬çã«äœ¿çšãããã¡ãœããã®åŒã³åºãã·ã°ããã£ãå€æŽãããªã©ãå€ãã®ãã¡ã€ã«ãå£ããããªå€æŽãé »ç¹ã«è¡ããŸãã ãããžã§ã¯ãã¯å®å šã«ã¿ã€ãã¹ã¯ãªããã§ããããããåé¡ããã¥ãŒãéããŠãéããŠãããã¡ã€ã«ã§å€æŽã«ãã£ãŠçºçãããšã©ãŒãšèŠåã確èªã§ãããšäŸ¿å©ã§ãã ãã ãããããžã§ã¯ãã®ãµã€ãºã倧ãããããåé¡ã®ãªã¹ãã衚瀺ããã«ã¯ãã¿ãŒããã«ã«ç§»åããŠç¬èªã®makeã³ãã³ããå®è¡ããå¿ èŠããããŸãã 次ã«ãåé¡ãä¿®æ£ããåã«ã端æ«ãšVS Codeã®éã§æ¥œãããã³ã¹ãå®è¡ããé©åãªãã¡ã€ã«ã§é©åãªè¡ãæ€çŽ¢ããå¿ èŠããããŸãã
ç§ãå¿ èŠãšããŠããã®ã¯ããããžã§ã¯ãå ã®ãã¹ãŠã®éããŠãããã¡ã€ã«ãšéããŠãããã¡ã€ã«ã®ãã¹ãŠã®ãšã©ãŒãšèŠåã衚瀺ããããã«ãåé¡ããã¥ãŒã«æ瀺ããæ¹æ³ã§ãã ããã«ããããã¹ãŠã®åé¡ã1ã€ã®ãªã¹ãã§ç¢ºèªãããã°ããã¯ãªãã¯ããŠä¿®æ£ããããšãã§ããŸãã
@waderyanããã¯ãTSããŒã ãšè©±ãåã£ããã«ããŒäœæ¥ã®æ©èœãªã¯ãšã¹ãã§ãã
åèãŸã§ã«ããã®åé¡ãžã®ãªã³ã¯ã瀺ããŸã-httpsïŒ//github.com/Microsoft/TypeScript/issues/11229
ããŠãç§ã¯"problemMatcher": "$tsc-watch"
ïŒhttps://code.visualstudio.com/Docs/editor/tasks#_processing-task-output-with-problem-matchersãåç
§ïŒãšãã¹ãŠã®ãšã©ãŒã§ç£èŠãã«ãã¿ã¹ã¯ã䜿çšããŸãèŠåã¯ãåé¡ãã¥ãŒã«æ£ãã衚瀺ãããŸãã éããŠãããã¡ã€ã«ã®å€æŽã¯èšèªãµãŒããŒã«ãã£ãŠããã«éç¥ããããããããã¯éåžžã«åªããã¯ãŒã¯ãããŒã§ãããä¿åãããšã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«ïŒ tsc --watch
ïŒãããªã¬ãŒãããããã§ããã°ããæéãããããŸãããä¿åãã/ä¿åããªãããšã§ãã®ã¬ã€ãã³ã·ãŒãå¶åŸ¡ã§ããŸããŸã ã
ããã«é¢ããETAã¯ãããŸããïŒ ãã®æ©èœã«ã¯å€ãã®åé¡ããããäœããèŠéãããã©ããã¯ããããŸããïŒsmileïŒ
@ maxime1992ãã©ããŒã¢ããã«æè¬ããŸãã ããã¯ç§ãã¡ã®ã¬ãŒããŒã§ãã ãŸã 確åºããã¹ã±ãžã¥ãŒã«ã¯ãããŸããã
ç§ãæ°ä»ããŠããªãã£ãã®ã¯ãVSCodeãæã£ãŠããTasksã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãããè¡ãããšãå¯èœã§ãããšããããšã§ããã ããªããããªããã°ãªããªãã®ã¯ããªãã®tasks.jsonã«ãããå ¥ããããšã§ãïŒ
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-w", "-p", "."],
"showOutput": "silent",
"isBackground": true,
"problemMatcher": "$tsc-watch"
}
次ã«ããããå®è¡ããã ãã§ããããžã§ã¯ãå šäœã®ãã¹ãŠã®ãšã©ãŒãåé¡ãã¥ãŒã«è¡šç€ºãããŸãã
ããããã£ãšç®ç«ã€ããã«è¡šç€ºãããªãã®ã¯ãªããå°ãæžæããŸãã ãšãŠã䟿å©ã§ãã£ãããã§ãã
@johnfnãã°ããã解決çãã©ããããããšãã ã¿ã¹ã¯ã®å¯äžã®ç®çããšã©ãŒã衚瀺ããããšã§ããå Žåã¯ãã-noEmitãåŒæ°ãè¿œå ããããšãã§ããŸã
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-w", "-p", ".", "--noEmit"],
"showOutput": "silent",
"isBackground": true,
"problemMatcher": "$tsc-watch"
}
@kevinjreece iTermã®ã»ãã³ãã£ãã¯å±¥æŽæ©èœïŒhttps://www.iterm2.com/documentation-one-page.htmlïŒã䜿çšããŠãã端æ«ãšVSCodeã®éã®æ¥œãããã³ã¹ããé²ãããšãã§ããŸãã cmdããã¡ã€ã«å+è¡çªå·ãã¯ãªãã¯ãããšãvscodeã§å¯Ÿå¿ããè¡ãèªåçã«éããŸãã
ãšã©ãŒã®ãããã¡ã€ã«ãéãããšãã§ãããã©ãã/ããŒããŒãã·ã§ãŒãã«ããã䜿çšããŠåé¡ããã«ã§éãããšãã§ãããã©ãã誰ããç¥ã£ãŠããŸããïŒ ã¿ã¹ã¯ãå®è¡ããåŸã§ããããŠã¹ãšããŒããŒããåãæ¿ãç¶ããã®ã¯æ¬åœã«èŠçã§ãã
Ctrl+Shift+M
ïŒãŸãã¯Cmd+Shift+M
ïŒã§åé¡ããã«ãéãããšãã§ããŸããããã¯[åé¡ã®è¡šç€º]ãšããŠããŒããŒãã·ã§ãŒãã«ããã®äžã«ãããŸã-ããã¯ã©ãããæå³ã§ããïŒ
ããããéããŠãããã©ããã«é¢ä¿ãªãããšã©ãŒã®ãã次ã®ãã¡ã€ã«ã«ç§»åããããã®ã·ã§ãŒãã«ãããå¿ èŠã§ãã
ç§ã¯ãããè¡ãããã®æ¡åŒµæ©èœãäœæããããšãæ€èšããŠããŸããããAPIã¯ãã£ãããšããã¯ãããŠãããã³ãã³ãã¯ç§ãèŠãããšãã§ããæ¹æ³ã§MarkerServiceã«ã¢ã¯ã»ã¹ã§ããŸããïŒåé¡ã远跡ããŸãïŒã
ãããªãã»ã©ã ããã¯éåžžã«äŸ¿å©ãããããŸããã äžè¬çã«ãvscodeã®Problems
é åã«ã¯ãæ¹åããæ©äŒãããããããããã§ãã
ãã®åé¡ãçºçããŠãã人ã¯https://github.com/Microsoft/vscode/issues/34412ïŒ
åŸç¶ã®ãã«ãéã§ãŸã£ããåããšã©ãŒãçºçããå Žåãããã¯ç¡èŠãããŸã
ãããã°ã¿ã¹ã¯ãžã®tsc
ã®ããªãã¯ã¯ãåžžã«å¯èœã§ãããšã¯éããŸãããããšãã°ãã«ã¹ã¿ã WebpackããŒããŒã䜿çšããŠ.vueãã¡ã€ã«ãåŠçããVueãããžã§ã¯ãã§ã¯ïŒ tsc
ã¯Vueãã¡ã€ã«ãããã«è§£æã§ããŸããïŒ ïŒã
ãã ãããããžã§ã¯ããç£èŠããŠVS Codeã¿ãŒããã«ã«ã³ã³ãã€ã«ããããšã§ããã¹ãŠã®ãšã©ãŒãçºçãããæ¹æ³ãèŠã€ããããšãã§ããŸãã
ããšãã°ãç§ã¯ãã®npmã¹ã¯ãªãããå®è¡ããŸããã
"live-check": "webpack --config ./build/webpack.dev.conf.js -w --display none",
ãããŠããnpm run live-checkããä»ããŠVSã¿ãŒããã«ã«èµ·åãããšããã¹ãŠã®ãšã©ãŒããªã¢ã«ã¿ã€ã ã§çºçããŸãã
@johnfnã®ãœãªã¥ãŒã·ã§ã³ã
[åºå]ã¿ãã§ã¿ã¹ã¯ãå®è¡ãããŠããã®ãããããŸããããšã©ãŒã¯è¡šç€ºãããŸãã
tasks.jsonïŒ
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-w", "-p", ".", "--noEmit"],
"showOutput": "silent",
"isBackground": true,
"problemMatcher": "$tsc-watch"
}
tsconfig.json
{
"compilerOptions": {
/* Basic Options */
"target": "es2015", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
"module": "es2015", /* Specify module code generation: 'commonjs', 'amd', 'system', 'umd' or 'es2015'. */
// "lib": [], /* Specify library files to be included in the compilation: */
"allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */
"jsx": "react-native", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* Generates corresponding '.d.ts' file. */
"sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
"outDir": "./build", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
"removeComments": false, /* Do not emit comments to output. */
// "noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
"strictNullChecks": true, /* Enable strict null checks. */
"noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
"alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
"moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
/* Source Map Options */
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
},
"include": [
"src/**/*",
"./node_modules/react-native-dev-kit/**/*"
],
"exclude": [
"__tests__",
"index.android.js",
"index.ios.js",
"build",
"local_history",
"node_modules"
]
}
éãããã¡ã€ã«ãããšã©ãŒã衚瀺ãããªãã®ã¯ãªãã§ããïŒãšã©ãŒããããšç¢ºä¿¡ããŠããŸãïŒïŒ
ð
@appersideãèšã£ãããã«ãã¿ã¹ã¯ã¯ãã¡ã€ã«ãå€æŽããããšãã«ã®ã¿ãšã©ãŒã衚瀺ããŸãã
ãšã©ãŒããµã€ãããŒã®ã¯ãŒã¯ã¹ããŒã¹ã«è¡šç€ºããããšããæ°æ©èœã«ãããç®±ããåºããŠäœæ¥ããããšãã§ããã°å¹žãã§ãã
ææ°ããŒãžã§ã³ã®vscodeã§ã¯ãã¿ã¹ã¯åœ¢åŒãå°ãå€æŽãããããã§ãã æ°ãã圢åŒã¯æ¬¡ã®ãšããã§ãã
{
"label": "Monitor TS Errors",
"command": "./node_modules/.bin/tsc",
"type": "shell",
"args": ["--watch", "--project", "."],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"isBackground": true,
"problemMatcher": "$tsc-watch"
}
VSCodeãéããã³ã«ã¿ã¹ã¯ãéå§ããŸããïŒ ãŸãã¯ãèªåçã«èµ·åããæ¹æ³ã¯ãããŸããïŒ
ææ°ããŒãžã§ã³ã®VSã³ãŒãã¯ããã¡ã€ã«ããšã®ãšã©ãŒæ°ã瀺ããŠãããšæããŸã
ãããç¡å¹ã«ããã«ã¯ã©ãããã°ããã§ããïŒ
//ãã¡ã€ã«ãšãã©ã«ãã«ãšã©ãŒãšèŠåã衚瀺ããŸãã
"problems.decorations.enabled"ïŒtrueã
åã«ãããfalseã«å ¥ããŠãã ãã;ïŒ
æšã1ïŒ36 AMã§2018幎2æ15æ¥ãpabloliã«[email protected]æžããŸããïŒ
ãããç¡å¹ã«ããã«ã¯ã©ãããã°ããã§ããïŒ
â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/Microsoft/vscode/issues/13953#issuecomment-365838054 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAy0aayEHkVuxumJRuZz-mdWmBvBhdn9ks5tU9B2gaJpZM4KaH3J
ã
ããã¯ç§ã䜿çšããŠãããã®ã§ã
{
"label": "TSCompileAll",
"type": "shell",
"command": "./node_modules/.bin/tsc --watch --noEmit --project .",
"problemMatcher": ["$tsc-watch"]
}
ããã¯ããããã®ãªããã®ã§ãããããããã©ã«ããŸãã¯å°ãªããšãèšå®ã«ãããããšãã§ãããã©ããçåã«æããŸãã
ã¯ãŒã¯ã¹ããŒã¹ãŸãã¯ãããžã§ã¯ãã§ãã®ã¿ã¹ã¯ãèªåéå§ããããšã¯å¯èœã§ããïŒ
ç§ã¯ããã䜿çšããŸãïŒ
{
"version": "2.0.0",
"tasks": [
{
"label": "tsc watch",
"type": "shell",
"command": "./node_modules/.bin/tsc",
"isBackground": true,
"args": ["--watch", "--noEmit", "--project", "www"],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "never",
"echo": false,
"focus": false,
"panel": "dedicated"
},
"problemMatcher": "$tsc-watch"
}
]
}
ãã®æ¡åŒµæ©èœã䜿çšããŠãèµ·åæã«ã¿ã¹ã¯ãå®è¡ããŸãïŒ https ïŒ
ãã¡ã€ã«ãéãããšãã«ïŒåé¡ããã«ã§ïŒãã¡ã€ã«ã®ãšã©ãŒãä¿æããæ¹æ³ããŸã ããããŸããã
ãã¡ã€ã«ãéããåŸãããã«ã«ãªã¹ããããŠããåé¡ãä¿æãããªãã·ã§ã³ããããšéåžžã«åœ¹ç«ã¡ãŸãã
誰ãããã®åé¡ã®åé¿çãæã£ãŠããŸããïŒ äžèŠæš¡ãã倧èŠæš¡ã®ãããžã§ã¯ãã®å Žåããšã©ãŒãååšããªãããšã確èªããããã«ãã¹ãŠã®ãã¡ã€ã«ãéãã®ã¯éåžžã«é¢åãªå ŽåããããŸãã
1ã€ã®ã³ãã³ãã§ãã¹ãŠã®ãã¡ã€ã«ãäžåºŠã«éãæ¹æ³ã¯ãããŸããïŒ ããã¯ç§ã«ãšã£ãŠèš±å®¹ã§ããåé¿çã§ãã
@daarongãããžã§ã¯ãå šäœããã§ãã¯ããããã«vscodeã§ã³ãŒãã£ã³ã°ããŠããéãç§ã¯éåžžãã¿ãŒããã«ã§eslint-watchãå®è¡ããŠããŸãã vscodeã«ãã¹ãŠã®ãªã³ãã£ã³ã°æ å ±ãããã»ã©è¯ãã¯ãããŸãããããããžã§ã¯ãå ã®ãã¡ã€ã«ã«ãšã©ãŒããããã©ãããäžç®ã§ç¢ºèªããããã®é©åãªãã©ãŒã«ããã¯ã§ãã
誰ããJavaãã¡ã€ã«ã®ããã«å¯Ÿããåé¿çãæã£ãŠããŸããïŒ
éããŠãããã¡ã€ã«ã®ãšã©ãŒã ãã§ãªããåé¡ããã«ã®ãã¹ãŠã®ãã¡ã€ã«ã®ãã¹ãŠã®ãšã©ãŒããã€ã§ã確èªãããã
ããã¯åè«ã§ããïŒ çŽ2,000åã®ãã¡ã€ã«ããããããããã¹ãŠãæåã§éããŠlintãšã©ãŒãæ€çŽ¢ããå¿ èŠããããŸããïŒ
vsã³ãŒãã§tslintãããªã¬ãŒããæ¹æ³ã¯ãããŸããïŒ ç§ã¯eã䜿ãããšãã§ããŸããã tslint
ã䜿çšããŠãã³ã³ãœãŒã«ã«è¡šç€ºããŸãã
VS Codeãããªã¬ãŒããŠãsrcãã©ã«ããŒå
ã®ãã¹ãŠã®ãã¡ã€ã«ã®ãšã©ãŒïŒæ§æãšãªã³ã¿ãŒïŒãã¹ãã£ã³ã§ããã°çŽ æŽããããšæããŸãã
èšãæãããšãsrcãã©ã«ããŒå
ã®ãã¹ãŠã®ãã¡ã€ã«ïŒtsïŒãåæã«éãã«ã¯ã©ãããã°ããã§ããïŒ
node_modulesã®ãããªä»ã®ãã©ã«ããæ€çŽ¢ããªãã§ãã ããã ...ãããã³ã«ã®ããã ãã«ã ð
ãã¶ãããã¹ãå«ãã/é€å€ãããªãã·ã§ã³ãããã§ããããïŒ ..ã
çŽ1ãæåãã¯ãŒã¯ã¹ããŒã¹ãã¥ãŒã¢ã®ãã¡ã€ã«ã®æšªã«å°ããªèµ€ãã¢ã€ã³ã³ã衚瀺ãããŠããŸããã ä»ã圌ãã¯å»ããŸããããããŠãç§ã¯ãããã©ã®ããã«ããã®ãåãããŸããã æ°ããããŒãžã§ã³ã®VSCodeãåäœæ¹æ³ãå€æŽãããããããå£ãæ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããŸããã ãããåã³æ©èœãããæ¹æ³ã¯ïŒ ç§ã¯tasks.jsonã«ã€ããŠèããããšããªããããã以åã«æ©èœãããšããäºå®ã¯ããããçŸåšããã©ã«ãã®åäœã§ããããšãç§ã«ç€ºåããŠããŸãã
ãããã10ç§æªæºã§ãã¹ãŠã®åé¡ã確èªããæ¹æ³ã§ãã
ããªãã¯ã¡ãã£ãšããããªãã¯ã䜿ããŸãã
ãã¡ã€ã«å ã®ãã¹ãŠã眮æãéããŸãïŒCtrl + Shift + HïŒã
亀æ ; ãš ;
ãã¹ãŠçœ®æãæŒããŸãã ããã§ãããŸãã 次ã«ãåé¡ã確èªããŸãã
ããã§ã®åæã¯ããã¹ãŠã®ãã¡ã€ã«ã«å°ãªããšã1ã€ã®ã»ãã³ãã³ãããããšã§ãã 倧èŠæš¡ãªãããžã§ã¯ãã®å Žåãæ€çŽ¢ãçµã蟌ãããã«æ±ããèŠåã衚瀺ãããå Žåã¯ããã¹ãŠã®ãã¡ã€ã«ã«å ±éããŠãããã®ã®ãããŸãååšããªããã®ãå ¥åããã ãã§ãã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ Ajayã®ã·ã§ãŒãã«ããã¯æ©èœããŸãããããªãããããŒãªæããããŸãã ããã¯VSCã«ãšã£ãŠæçœã§ç°¡åãªåå©ã®ããã§ãã ããã¹ãŠã®ãšã©ãŒã衚瀺/éããŠãããã¡ã€ã«ã®ãšã©ãŒã衚瀺ããšããã¹ã€ãããããã°ååã§ãã
ããããã¡ã€ã«ã®å€æŽæã«èªåçã«çºçãããã®ã§ã¯ãªããå¥ã®èãã äžéšã®ããŒã«ãã¿ã³ããããããã¹ãŠã®ãã¡ã€ã«ããã§ãã¯ããæ瀺çã«å®è¡ã§ããã³ãã³ããããã°ããŸã£ããåé¡ãããŸããã
æ£è§£ã§ããåé¡ã¯ãéããŠãããã¹ãŠã®ãã¡ã€ã«ããã§ãã¯ããTSãµãŒãã¹ã®èª¿æŽãšãéããããŠããŠéåžžã¯èªåçã«ãã§ãã¯ãããªããã¡ã€ã«ã®ãã§ãã¯ã«é¢ä¿ããŠãããšæããŸãããããã¯æ£ããã§ããïŒ ãããã£ãŠãç°¡åãªè§£æ±ºçã¯ãåé¡ãã€ã³ãåäžã®ãœãŒã¹ãããã¹ãŠã®TSåé¡ã確å®ã«åãåãããã«ããããšã§ããããã¯æ£ããã§ããïŒ
åé¡ãvscodeããŒã ïŒïŒïŒã«ãã£ãŠã©ã®ããã«è§£æ±ºãããªãããèŠãŠãææ¡ïŒ
ã¢ããªã³ãŸãã¯vscodeã¿ã¹ã¯åé¡ãããã£ãŒãä»ããŠããã解決ããããšã¯äžå¯èœã§ããïŒ ãããªããåé¡ãã€ã³ã«äœããã€è¡šç€ºãããããèªåã§ç¢ºèªã§ããããã§ããïŒ æ¬¡ã«ãvscodeããã®å 容ã衚瀺ããªãããã«ããå¿ èŠããããŸããïŒ vscodeã®éçºè ã¯ããã®ãããªãã®ãå®è¡å¯èœãã©ãããæããŠããããŸããïŒ
ãã ãããã®åºæ¬çãªãã®ã¯vscodeèªäœã§åŠçããå¿ èŠããããšæããŸãã ãã¡ã€ã«ãéãããšãã«TSãšã©ãŒãèªåçã«è§£æ±ºããããã§ã¯ãããŸãã...éããŠãããã©ããã«é¢ä¿ãªããTSãµãŒããŒã«ãã¹ãŠã®ãã¡ã€ã«ãåŠçãããã ãã§ããŸãããã¯ãã§ãã ãã¡ãããªãã·ã§ã³ã§ããå¿ èŠããããŸããããªãã·ã§ã³ã§ããå¿ èŠããããŸãã
ãããæåã«è§£æ±ºãããã¹ãŠã®åé¡ã®äžã§æãéèŠã§ã¯ãªãã®ã¯ãªãã§ããïŒ IDEã¯ä¿®æ£ããããŸã§å£ããŠããŸãã
ããŠãããã¯ããããŒãªãœãªã¥ãŒã·ã§ã³ã§ãã
ã¿ã¹ã¯ã«$ tsc-watchã䜿çšãããããšã«ããã @ plievoneã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŸãã 次ã«ãAutoLaunchãªã©ã®ãã©ã°ã€ã³ãå
¥æããŠãVisual StudioCodeãéããã³ã«ã¿ã¹ã¯ãå®è¡ããŸãã ïŒhttps://marketplace.visualstudio.com/items?itemName=philfontaine.autolaunchïŒ
@mateuscbã®ææ¡ãæ¡åŒµããã«ã¯ããã¡ã€ã«ãšã¯ã¹ãããŒã©ãŒã®ã³ã³ããã¹ãã¡ãã¥ãŒã§ãç¹å®ã®ãã©ã«ããŒãå³ã¯ãªãã¯ããŠããã©ã«ããŒå ã®åé¡ãæ€çŽ¢ããå®è¡ã§ãããã®ãé©ããŠããå¯èœæ§ããããŸãããŠãŒã¶ãŒã¯ãã¹ã³ãŒããšé床ã®éã®ãã¬ãŒããªãã決å®ããŸãã
@ ajayRaghav37ã®ææ¡ãããªãã§ãã ãã
ãããŒãç§ã¯å°æ¥äºåºŠãštsã³ãŒããæžãã€ããã¯ãªãïŒ
ããããã€ãã€ãã©ã€ã³ã«å ¥ãããããã«ã€ããŠã®æŽæ°ãã¢ã€ãã¢ã¯ãããŸããïŒ ãã®æ©èœãããã«äœ¿çšã§ãããšäŸ¿å©ã§ãã
ES-Lintã¯ãVSCodeã«æ°ããã¿ã¹ã¯ãå°å ¥ããŸããã ã¯ãŒã¯ã¹ããŒã¹ã®èšå®ã§æå¹ã«ããå¿ èŠããããŸãã
"eslint.provideLintTask": true
ã¿ãŒããã«ã¡ãã¥ãŒã«ç§»åããã¿ã¹ã¯ã®å®è¡ãéžæããŠããã
eslintïŒãã©ã«ãå šäœããªã³ãããŸãã
ã¿ãŒããã«ã§æ¬¡ã®ã³ãã³ããå®è¡ããŠãã»ãšãã©ã®åé¡ãèªåä¿®æ£ããããšãã§ããŸãã
.\node_modules\.bin\eslint.cmd --fix .
åç §ïŒ https ïŒ
VS Codeã§åé¡ã®ããã¹ãã£ããŒããŸã åŸ ã£ãŠããŸãããeslintã䜿çšããå Žåã¯ãããã§ååã§ãã
確ãã«ã倧èŠæš¡ãªãããžã§ã¯ãã«ã¯å€ãã®æ©èœãå¿ èŠã§ããã æŽæ°ã¯ãããŸããïŒ
@ ajayRaghav37 ãeslintã¯å ¥åãšã©ãŒããã£ããã§ãããã«ãŒã«ããªã³ãããã ãã®ããã§ãã
https://github.com/typescript-eslint/typescript-eslint/issues/36#issuecomment -478820127
+1
ãããŸã§ã ãŸããçµã¿èŸŒã¿ã®TSãã§ãã¯ãšãªã³ãã£ã³ã°ãç¡å¹ã«ããŠããã«ãã¿ã¹ã¯ã®çµæã䜿çšããããšãå¯èœã§ãããšæããŸãã
+1
ãã®åé¡ã解決ããããã«tsc --noEmit -w
ãå®è¡ããŸãã
ããããVSCodeãšts-server
ãå
±æããæ¹ãè¯ããšæããŸãã
ãããããªãããã»ã©é·ãéå®è£ ãããŠããªãã®ã§ããããã
ããã§TSèšèªãµãŒããŒã«ç²ŸéããŠãã人ã¯ããŸããïŒ LSP APIã«ã¯ããããIDEã«äŒéããæ¹æ³ããããŸãããïŒ ããã¯ããã©ãŒãã³ã¹ã®åé¡ã§ããïŒ æããã«äººã ã¯ãã®æ©èœã®æ¬ åŠã«æ ç±ã泚ãã§ããã®ã§ïŒç§ã¯ããã§ãïŒãããããã£ããã·ã¥ã©ã€ã³ãééãããããã®ã³ãã¥ããã£ã®æ¯æŽã«é¢å¿ããããšæããŸãã
ããããããã¯ãããã§ã®åé¡ãVSCodeããŒã ã®äººçè³æºã®äžè¶³ã ãã§ããå Žåã§ãã
åé¡ãç°ãªãå ŽåïŒVS Codeã¢ãŒããã¯ãã£ãžã®å€§ããªåœ±é¿ãLSPãžã®å€æŽãå¿ èŠãããã©ãŒãã³ã¹ãžã®åœ±é¿ãäžæ確ãUXã®èæ ®äºé ïŒããããç¥ã£ãŠãããšããã®äžèŠåçŽãªæ©èœã«éåžžã«æéããããçç±ã説æããã®ã«åœ¹ç«ã¡ãŸãã
ãã®å·ã«ã¯ãVisual Studio CodeããŒã ã§ã¯ãªããTypeScriptããŒã ã«å¯Ÿãã責任ã«ã€ããŠããŸããŸãªã³ã¡ã³ãããããŸãã ããããããã¯VSCodeã«çµã¿èŸŒãŸããŠããã@ ts-checkãæ©èœã®åé¡ã§ããããŸãã ãã®æçš¿ã§èšåãããŠãããtscãã³ãã³ããå®è¡ããã¿ã¹ã¯ã䜿çšããããã®åé¿çã¯ãtscãã€ã³ã¹ããŒã«ãããŠããªãããæ©èœããŸããïŒ@ ts-checkãšjsdocã®ã¿ã䜿çšããŠããŸãïŒã
以åã¯ããããžã§ã¯ãå ã®ãã¹ãŠã®ãã¡ã€ã«ãã¯ãªãã¯ããŠãšã©ãŒãèŠã€ããŠããŸããã ããã¯é¢åã§ãããããã¡ã€ã«ãéããŠããå°ãªããšãåé¡ã¯ãµã€ãããŒããæ¶ããŸããã§ããã éå»æ°ãæã®æŽæ°ã®1ã€ã®åŸããã®åé¡ãçºçããŸããïŒïŒ73153ã
ãããæåã«è§£æ±ºãããã¹ãŠã®åé¡ã®äžã§æãéèŠã§ã¯ãªãã®ã¯ãªãã§ããïŒ IDEã¯ä¿®æ£ããããŸã§å£ããŠããŸãã
åæããŸãã
ãã€ïŒ
äžèšã®ãæ¿èªãããããœãªã¥ãŒã·ã§ã³ã¯æ©èœããŸãããäžéšã®ãã£ãŒã«ãã¯éæšå¥šã«ãªã£ãŠããŸãã
{
"label": "Watch TS Errors",
"type": "shell",
"command": "tsc",
"args": ["-w", "-p", ".", "--noEmit"],
"isBackground": true,
"problemMatcher": "$tsc-watch"
}
ç§ã®ããã«åããŸãã
ãŸã æã£ãŠããªãå Žåã¯ãtasks.jsonãã¡ã€ã«ã®äœæã«ã€ããŠã¯https://code.visualstudio.com/docs/editor/tasksãåç §ããŠ
ãã®ãããªãã«ãã¿ã¹ã¯ãšããŠtsc
ãå®è¡ããŠãããšãã«ãVS Codeã®çµã¿èŸŒã¿TSãµãŒããŒãç¡å¹ã«ããããšã¯å¯èœã§ããïŒ ç§ãå°ããçç±ã¯ãããããªããšãçµã¿èŸŒã¿ã®TSãµãŒããŒããã®ãšã©ãŒãšã¿ã¹ã¯ããã®ãšã©ãŒã®2ã€ã®ã»ããã®ãšã©ãŒãçºçããåæããšããŠããªãå Žåãããããã§ãã
IDEã¯å£ããŠãããTypescriptãããžã§ã¯ãã§ã®äœæ¥ã«ã¯äœ¿çšã§ããŸããã ãããã£ãŠãããŒãžã§ã³1.28.2ã«åºå·ããæŽæ°ãç¡å¹ã«ããå¿ èŠããããŸãã
å¥åŠãªããšã§ããã以åã¯ã©ããããããããŸããããŸããã äœãèµ·ãã£ããïŒ ãããŠãããã¯ãã€åã³æ©èœããŸããïŒ ãã§ã«1幎ãçµéããå€åã®å ãã¯ãããŸãã...
2019幎10æãããã¯ãŸã 倧èŠæš¡ã§ãã
ä»ã®IDEãæäŸããæ©èœã®3幎.... NNNNICCCEEEEEEEEEEEEEE
ä»ã®IDEãæäŸããæ©èœã®3幎.... NNNNICCCEEEEEEEEEEEEEE
VSCodeã¯IDEã§ã¯ãªãããšã«æ³šæããŠãã ããã ããã¯ããšãã£ã¿ãŒãšIDEã®éã®äœãã§ãã
ãšã«ãããç§ã¯åœŒãããããããããšãæã¿ãŸã
ä»ã®IDEãæäŸããæ©èœã®3幎.... NNNNICCCEEEEEEEEEEEEEE
VSCodeã¯IDEã§ã¯ãªãããšã«æ³šæããŠãã ããã ããã¯ããšãã£ã¿ãŒãšIDEã®éã®äœãã§ãã
ãšã«ãããç§ã¯åœŒãããããããããšãæã¿ãŸã
誰ãæ°ã«ããªãã ããã§ããtsãã¡ã€ã«ããã§ãã¯ããããã«ããŸããŸããã¿ã¹ã¯ãå®è¡ããããšããã§ããŸããã
æäŸãããã¬ã€ãã¯ããŸã£ããæ°ããã¯ãœããã°ã©ãã³ã°èšèªãåŠãã§ããããã§ãã
ç§ãã¡ã¯ä»äºãšçç£ãè¡ã£ãŠããŸããç§ã¯ãèªåã®tsãã¡ã€ã«ãIDEïŒI CALL IT IDE okïŒïŒã§ãã§ãã¯ããã¹ã¯ãªãããäœæããããã«ãã§ãããã®ãã¹ãŠã®WebpackïŒããã³åæ§ã®ããŒã«ïŒã®ææµãåŠã¶ã®ã«ç¡é§ãªæéã¯ãããŸããã tã¯ãIDEã®åãäœæè
ãæ£ããäœæããèšèªããµããŒãããŠããŸãã
ãªããŠã§ããã
ãªããŠã§ããã
å°ãèŠæ¹ãããã°ïŒ
ãã€ã¯ããœããã¯ããã€ãã®ãœãããŠã§ã¢ãäœæãããããç¡æã§æäŸããŸããã
ãã®ãœãããŠã§ã¢ã¯ãããã«æè¬ããŠããäœçŸäžãã®äººã
ã«åœ¹ç«ã¡ãŸãã
ãã€ã¯ããœããã¯ããã®ãœãããŠã§ã¢ã®äœ¿çšã匷å¶ããŠããŸããã
çè«çã«ã¯å®ç§ã§ã¯ãªãã®ã§ãç¡æã§äœããæäŸããŠãããããšã«è ¹ãç«ãŠãŠããŸãã
ãŸãã圌ã¯åããIDEãã®èšèªã䜿çšããŠãããIDEã¯ãªãŒãã³ãœãŒã¹ã§ããããã«ãªã¯ãšã¹ããåãå ¥ããŸã...
ç§ã¯ãããé·ãéèŠãŠããŸãããããšã©ãŒãèŠåã远跡ããããã®ããè¯ãæ¹æ³ããŸã åŸ ã£ãŠããŠãäžè¬å ¬é以æ¥äœ¿çšããŠããŸãã
ããã¯èšã£ãŠããç§ã®æèŠã§ã¯ãVSCodeã¯ééããªãJS / TSéçºã«æé©ãªIDEã§ããã€ãŸããGithubã«æ¬¡ãæé«ã®MS補åã§ãããããããããŸããã æ©èœãšããã©ãŒãã³ã¹ã¯ç¢ºå®ã«æ¹åãããŠãããæ¡åŒµæ©èœã®éãéåžžã«å€ãã®ã§ããšãŠãããããæããŸãã ã¯ããããã¥ã¡ã³ãã®æ¹ãåªããŠããå¯èœæ§ããããŸãããããã«ãããã¹ãŠã®æè¡ããã¥ã¡ã³ãã«ã€ããŠãããèšãããšãã§ããŸãã
VS CodeããŒã ã¯ãããåªããããŒã«ãšçµ±åãå®çŸããããã«åžžã«æžåœã«åãçµãã§ãããšç¢ºä¿¡ããŠããŸãã
ãããŠãç§ãã¡ã¯ãŸã æ°ããæ©èœãèŠæ±ãããããããäžå¯§ã«å¢ããç¶ããããšãã§ãããšä¿¡ããŠããŸãã
åé¿çãžã®è¿œå -tsc-wã®åºåãç£èŠããããã®äºåæ§æãããã¿ã¹ã¯ãããããã§ãã Macã®å Žåã[ã¿ãŒããã«]-> [ã¿ã¹ã¯ã®æ§æ...]-> tscïŒwatch-tsconfig.jsonã 次ã«ãctrl + shift + BãæŒããŠãã¿ã¹ã¯ãå®è¡ããŸãã
3幎åŸ...äœããã¥ãŒã¹ã¯ãããŸããïŒ
倧èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ã®æäžã 圱é¿ãåãããã¹ãŠã®ãã¡ã€ã«ãéãããšããã¹ãŠã®ãšã©ãŒã衚瀺ãããªããªãããšã«æ°ã¥ããŸããã§ãã:-(
3幎ãšãŸã éããŠããŸãïŒãã³ãµãŒïŒ
3幎ãšãŸã éããŠããŸã
ãããã°ãããã®ã©ã³ãã ãªå察祚ã
ãšã«ãããããã¯åä»ãªåé¡ã§ã!!! æ·±å»ãªããžãã¹ãããžã§ã¯ãã«äœçŸãã®ãã¡ã€ã«ãããããšã«æ°ã¥ããŸãããïŒ
念é ã«çœ®ããŠãã©ã®ããã«ãããã远跡ããããšã«ãªã£ãŠããŸããïŒ
ããã¯ã人ã ãIDEã䜿çšããããã®åºæ¬çãªæ©èœã®1ã€ã§ãã
ãããŠä»ãããã¯ããžã¥ã¢ã«ã¹ã¿ãžãªãšãã®ã€ã³ããªã»ã³ã¹ã«ãæã äŒæããŠããããã§ã
ãšããã§ãã¿ã¹ã¯ã¯å°ãªããšãããã軜æžããããã§ãããtsãã¡ã€ã«ã®å Žåã¯ããã€ãã®å¶åŸ¡ã¹ã¯ãªãããå©çšã§ããããã§ãã vscodeã®æ¡åŒµæ©èœãããŒãžã£ãŒãããã¹ãŠã®angular / typescriptæ¡åŒµæ©èœã«ãã£ãŠã€ã³ã¹ããŒã«ããããã©ããã¯ããããŸããããã¿ã¹ã¯æ€çŽ¢ããŒïŒ[ãã]ã«è¡šç€ºïŒïŒhttps://code.visualstudio.comïŒã§æ€çŽ¢ããå Žå/ docs / editor / tasksïŒããªãã¯ããªããã³ã³ãã€ã«ãããã³ã«ããªãã¯ãããæèšã®ãããªãã®ãŸãã¯ãã®ãããªãã®ãæ€çŽ¢ããããšãã§ããŸãïŒããã¯å¥ã®ã¿ã¹ã¯ã§ãããéåžžã®ã³ã³ãã€ã«ããã»ã¹ãšäžç·ã«ãããè¡ãããã§ãïŒ
ãã®ããã[åé¡]ã¿ãã¯åœ¹ã«ç«ããªãã®ã§ã䜿çšããŸããã 代ããã«ãã¿ãŒããã«ã§ã³ãã³ããå®è¡ããŠãå®éã«å¿
èŠãªãã®ãååŸããŸãã ããšãã°ããããžã§ã¯ãã®ãã¹ãŠã®ã³ã³ãã€ã©ãšã©ãŒãçºçããå Žåã tsc -w
ãå®è¡ããŸãã ãããžã§ã¯ãã®ãã¹ãŠã®åé¡ã確èªãããå ŽåãšããŸã£ãã確èªããããªãå ŽåããããŸãã ãã¡ã€ã«ãéããŠãããã©ããã¯é¢ä¿ãããŸããã ããã¯ç¡é¢ä¿ã§ãã
ããŠã誰ããProblems
ã¿ãã§éããŠãããã¡ã€ã«ã«ã€ããŠã®ã¿ãšã©ãŒã衚瀺ããããšãéåžžã«éèŠã§ããå Žåã¯ããããèš±å¯ããŸãã
ãã ããVisual Studioã®å Žåãšåãããã«ãå¥ã®ã¿ããããšãã°Build Output
ãäœæããŠãã ããã
ãã®ã¿ãã«ã¯ãã³ã³ãã€ã©ããã®ãšã©ãŒãšèŠåãåçŽãª1è¡ã®ããã¹ããšããŠè¡šç€ºãããããã«ã¯ãªãã¯ãããšãã¡ã€ã«ãéãããšã©ãŒã®ããè¡ã«ãã£ã¬ãããé 眮ãããŸãã
ãŸãã F4
/ Shift-F4
ã·ã§ãŒãã«ããã¯ã次/åã®ãšã©ãŒã«ãžã£ã³ãããã®ã«æé©ã§ãïŒãã ããããã¯ããã»ã©éèŠã§ã¯ãããŸããïŒ
ãã®ã¿ããå®å šã«ã¯ãªã¢ããã³ã³ãã€ã«ãããã³ã«ããäžåºŠå ¥åããŠãã ããã ããã§ååã§ãããã
ãŸãã¯ã誰ããããã®æ¡åŒµæ©èœãäœæã§ããã§ããããïŒ
ãäžèŽãããã¡ã€ã«ãéããæ¡åŒµåã䜿çšããŠããã¹ãŠã®.tsãã¡ã€ã«ãéããŸãã ããã¯å°ãããã©ãŒãã³ã¹ãéãã§ãããå°ãªããšãããã¯ä»äºãæãéããŸãã
ã¿ã€ãã¹ã¯ãªããèšèªãµãŒããŒãã·ã³ã°ã«ã¹ã¬ããã§ãããCïŒã®ã³ã³ãã€ã©ã®ããã«åäœããªãããã ãšæããŸã
ãã¡ã€ã«ãéããŠãã³ãã³ãpalete withïŒã䜿çšããŠååã§ã¿ã€ããæ€çŽ¢ããããšãããšãäœãèµ·ãããªãããããã®æ©èœããŸã åŸ
ã£ãŠããŸãð
ãšããžã§çããã人ã®ããã«ã次ã®VS Codeã€ã³ãµã€ããŒãã«ãã§ã¯ãå®éšçãªãããžã§ã¯ãå
šäœã®ãšã©ãŒã¬ããŒããå¯èœã«ãã"typescript.tsserver.experimental.enableProjectDiagnostics"
èšå®ãå°å
¥ãããŠããŸã
ããã¯æ¬çªç°å¢ã«å¯Ÿå¿ããŠããªãããšã«æ³šæããŠãã ããã 倧èŠæš¡ãªãããžã§ã¯ãã®ããã©ãŒãã³ã¹ã®åé¡ãããã£ãŠãããã€ã³ããªã»ã³ã¹ãæãªãããå¯èœæ§ããããŸã
ãã®èšå®ã®äœ¿çšäžã«åé¡ãçºçããå Žåã¯ãæ°ããåé¡ãéããŠãã ãã
ãšããžã§çããã人ã®ããã«ã次ã®VS Codeã€ã³ãµã€ããŒãã«ãã§ã¯ãå®éšçãªãããžã§ã¯ãå šäœã®ãšã©ãŒã¬ããŒããå¯èœã«ãã
"typescript.tsserver.experimental.enableProjectDiagnostics"
èšå®ãå°å ¥ãããŠããŸãããã¯æ¬çªç°å¢ã«å¯Ÿå¿ããŠããªãããšã«æ³šæããŠãã ããã 倧èŠæš¡ãªãããžã§ã¯ãã®ããã©ãŒãã³ã¹ã®åé¡ãããã£ãŠãããã€ã³ããªã»ã³ã¹ãæãªãããå¯èœæ§ããããŸã
ãã®èšå®ã®äœ¿çšäžã«åé¡ãçºçããå Žåã¯ãæ°ããåé¡ãéããŠãã ãã
ãç²ãæ§ã§ããã
ãã®æ©èœã®é²æç¶æ³ã¯ã©ãã§ç¢ºèªã§ããŸããïŒ æºåãã§ããããVSã³ãŒãã®æšæºçã«è¿œå ãããã®ãå¿åŸ ã¡ã«ããŠããŸãã
ãšããžã§çããã人ã®ããã«ã次ã®VS Codeã€ã³ãµã€ããŒãã«ãã§ã¯ãå®éšçãªãããžã§ã¯ãå šäœã®ãšã©ãŒã¬ããŒããå¯èœã«ãã
"typescript.tsserver.experimental.enableProjectDiagnostics"
èšå®ãå°å ¥ãããŠããŸãããã¯æ¬çªç°å¢ã«å¯Ÿå¿ããŠããªãããšã«æ³šæããŠãã ããã 倧èŠæš¡ãªãããžã§ã¯ãã®ããã©ãŒãã³ã¹ã®åé¡ãããã£ãŠãããã€ã³ããªã»ã³ã¹ãæãªãããå¯èœæ§ããããŸã
ãã®èšå®ã®äœ¿çšäžã«åé¡ãçºçããå Žåã¯ãæ°ããåé¡ãéããŠãã ãã
Visual StudioCodeã®ãã°ãããäœæ¥ã«è²¢ç®ããŠããããã¹ãŠã®äººã«æè¬ããŸãã
ãšããžã§çããã人ã®ããã«ã次ã®VS Codeã€ã³ãµã€ããŒãã«ãã§ã¯ãå®éšçãªãããžã§ã¯ãå šäœã®ãšã©ãŒã¬ããŒããå¯èœã«ãã
"typescript.tsserver.experimental.enableProjectDiagnostics"
èšå®ãå°å ¥ãããŠããŸã
ããã¯ä»ã®ãªã³ã¿ãŒãšã©ã®ããã«é£æºããŸããïŒ
"typescript.tsserver.experimental.enableProjectDiagnostics"
ãæå¹ã«ãããšãTypescriptãªã³ã¿ãŒãæçµçã«node_modules
ããã©ããŒã¹ãã "exclude"
å Žåã§ããé
åžãã¡ã€ã«ããäœçŸãã®ãšã©ãŒãæãèµ·ãããšãããããã®ç©Žãæãäžãããšããåé¡ããããŸããã tsconfig.json
ã¯"node_modules"
ãå«ãŸããŠããŸãã ããããããã°ããæ¹æ³ãããããããŸããã
ãŸãã@ vdhãšåãå¹æãåŸãããŸããVSCodeã¯node_modulesãã©ã«ããŒå šäœã解æããåãã¡ã€ã«ã«å¯ŸããŠeslintãå®è¡ããŸãã
ç§ã®eslint / editoræ§æã¯æ¬¡ã®ãšããã§ãã
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"[javascript]": {
"editor.formatOnSave": false
},
"[javascriptreact]": {
"editor.formatOnSave": false
},
"[typescript]": {
"editor.formatOnSave": false
},
"[typescriptreact]": {
"editor.formatOnSave": false
},
"eslint.enable": true
å°ãªããšããªã³ã»ãŒãã¢ã¯ã·ã§ã³ã§ã¯ããã¹ã«node_modulesãå«ããã¡ã€ã«ã¯ãã¹ãŠç¡èŠããå¿ èŠããããšããã®ããããžãã¹ã®æåªå äºé ã®ããã§ãã
ããã¯éåžžã«é«ãè©äŸ¡ãããŠããæ©èœã§ãã
@ Martaver @ vdhãšåãåäœãã
ãã£ã«ã¿ãè¿œå ããŠãä»ã®ãšããã解決ãããŸãã
!*node_modules, !*.vscode
ã¿ãŒããã«ãã¥ãŒã«ã ïŒèŠèŠçã«ã®ã¿ç°ãªããŸãïŒã 誰ããããã§éã¶ããšã«èå³ãããå Žåã«åããŠã
@ blackfan23ã¯ãæ·ç©ã®äžã§ã»ãããæé€ããã®ã«å°ã䌌ãŠããããã§ãïŒD
@MartaveråæããŸããã äœãã®ãããªãã®ïŒ
"typescript.tsserver.experimental.enableProjectDiagnostics.ignores": [
"**/node_modules/**"
]
çæ³çã§ãã å®éã«ã¯0ã§ããã®ã«ããããžã§ã¯ãã§1,000ãè¶ ããåé¡ã確èªããã®ã¯ã¡ãã£ãšãã ããªãããšã§ãã
@ blackfan23 node_modules
ãžã®æ¥éäžã«ãã£ãŠåŒãèµ·ãããããã¹ãŠã®éå°ãªCPUãã£ãŒã³ã®ãããããã¯ãªãã·ã§ã³ã§ã¯ãããŸãã
@vdh tsconfigã§skipLibCheckãtrueã«èšå®ãããšã[åé¡]ã¿ãã§node_modulesããã®ãšã©ãŒã衚瀺ãããªããªããŸããã
ãã ãããã®ã¹ã¿ãã¯ãªãŒããŒãããŒã¹ã¬ããã«åºã¥ããŠããã®ãªãã·ã§ã³ããªã³ã«ãããšãã¿ã€ããã§ãã¯ãäœäžããŸãã VSã³ãŒããŸãã¯typescriptããŒã ã®èª°ããããã®ãªãã·ã§ã³ããªã³ã«ããããšã®é·æãšçæã«å ãåœãŠãããšãã§ãããã©ãããè©äŸ¡ããŠãã ããã
@mjbvz
ããåãïŒ ããããšãïŒ
ãããã®ãšã©ãŒã«å¯ŸããŠ1ã€ã®ã³ãã³ãã§ããã¹ãŠä¿®æ£ããå®è¡ã§ããŸããïŒ
Typescriptã§ã¯ãªãä»ã®èšèªã¯ã©ãã§ããïŒ ããšãã°ããããžã§ã¯ãã«ã¯æ°çŸã®PHPãã¡ã€ã«ããããåã ã®ãã¡ã€ã«ã®Intellephenseæ¡åŒµæ©èœã«ãã£ãŠå ±åãããåé¡ã確èªã§ããŸãããæ¬åœã«å¿ èŠãªã®ã¯ãã¯ãŒã¯ã¹ããŒã¹å šäœã®èšºæãå®è¡ããããšã§ãã
ã¯ããããã«ãããESLintãnode_modules
åãåé¡ãåŒãèµ·ãããŠããå Žåã«ãåé¡ãçºçããŸãïŒãESLintïŒæ§æã®ããŒãã«å€±æããŸãããã¯ãããã«ãããã£ã¬ã¯ããªããããŒã«ããŸãïŒã ãªã³ã¿ãŒããšã«ãã®ãã°ã«ããããåœãŠãããšããã®ã§ã¯ãªãããã©ãã¯ãªã¹ããªã©ãæ¬åœã«å¿
èŠã§ãã
node_modulesãé€å€ãããšãä¿®æ£ã¯1ã€ã«ãªããŸãã:)
ããã¯ããŒãã§æ©èœããããã§ããã-ããªãã®ãã€ã¬ãŒãžã¯ç°ãªãå Žåãããããã¡ãããä¿èšŒã¯ãããŸããïŒ
package.jsonã«typescript3.9.2ããããVSCodeã®ã¯ãŒã¯ã¹ããŒã¹ãããã®ããŒãžã§ã³ãéžæããå ŽåïŒ
ïŒ ./patches/typescript+3.9.2.patch
diff --git a/node_modules/typescript/lib/tsserver.js b/node_modules/typescript/lib/tsserver.js
index 2b6f035..ac6c9b4 100644
--- a/node_modules/typescript/lib/tsserver.js
+++ b/node_modules/typescript/lib/tsserver.js
@@ -149353,7 +149353,7 @@ var ts;
return;
}
// No need to analyze lib.d.ts
- var fileNamesInProject = fileNames.filter(function (value) { return !ts.stringContains(value, "lib.d.ts"); }); // TODO: GH#18217
+ var fileNamesInProject = fileNames.filter(function (value) { return !ts.stringContains(value, "lib.d.ts") && !ts.stringContains(value, "node_modules"); }); // TODO: GH#18217
if (fileNamesInProject.length === 0) {
return;
}
npm install
ãŸãã¯yarn
=å©çïŒ
@mjbvzãããæå¹ã«ããŠã¿ãŸãããããªãã«ããå Žåãšæ¯èŒããŠããã³ãŒããã«ããŒïŒã¬ã³ãã©ãŒïŒãããã»ã¹ã®CPU䜿çšçãããªãé«ããªã£ãŠããŸãã ããã¯é¢é£ããŠããããã«æãããŸããïŒããã»ã¹åã®ãã¬ã³ãã©ãŒãã¯ããã§ã¯ãªãããšã瀺åããŠããŸãããç§ã¯ãããæ°ååãæ¿ããŸããïŒã ãããžã§ã¯ãã¯å·šå€§ã§ã¯ãããŸããïŒhttps://github.com/Dart-Code/Dart-Codeã§ãïŒã
ããã¯æ°žé ã«ç¶ãããã§ã¯ãããŸããããããã¯ç§ã®MacBookãã¡ã³ãååã«å転ãããä»ã¯ãããããªã³ã§ã¯ãªããªãã«ããŠããã§ãããã
node_modules
ãåé¿ããããã«ãªã³ã¿ãŒæ§æãèšå®ããããšããŠå€±æããããŸããŸãªè©Šã¿ã«ããããããã "typescript.tsserver.experimental.enableProjectDiagnostics"
åžžã«node_modules
å
ã®ãã¹ãŠã®ãã¡ã€ã«ã«é£ã³èŸŒãçç±ã«ã€ããŠããããŸã§ã«èª¿æ»ããããŸãããïŒ
ãã®æœåšçã«çŽ æŽãããæ©èœã¯ãäžèŠãªãã¡ã€ã«ããã£ã¬ã¯ããªãç¹°ãè¿ãããšã«ãã£ãŠåŒãèµ·ããããé床ã®CPUãã£ãŒã³ã«ãã£ãŠå®å šã«æ®ºããããããæ®å¿µã§ãâŠð¢
PROBLEMS
ããã«ã«è¡šç€ºãããnode_modules
ããã®TypeScriptãšã©ãŒã§äžèšã®@vdhãšåãåé¡ãçºçããŠããŸã-ãã°ãå ±åãããã©ããããŸãã¯ãããåãªããã¹ã§ãããã©ããã¯
次ã®ãããªããŸããŸãªtsconfig.json
èšå®ãè©ŠããŸããã
"exclude": ["node_modules", "./node_modules/*"],
åé¡ãçºçãããã©ããã«ãã¿ãŒã³ããããã©ããã¯ããããããŸããã ç§ãçãããã€ãã®ããšãèµ·ãã£ãŠãã/èµ·ãã£ãŠããïŒ
äžèšã®ç¹ã«ã€ããŠã¯å®å šã«ã¯ããããŸããããç§ãæ··ä¹±ããŠããã ããããããŸããã é¢é£ããå¯èœæ§ã®ããå¥ã®éžè©±ãè¿œå ããã ãã§ãã çŸåšã®ããŒãžã§ã³ã§ãŸã åé¡ãçºçããŠãã人ãæ°äººããå Žåã¯ãæ°ããåé¡ãæåºãã䟡å€ããããããããŸããã ãŸã ãããããŠããŸããããç§ã¯ããã«ã€ããŠããããããŸããã
åãåé¡ãçºçããïŒ90430ã§ã®è§£æ±ºçã¯typescript-tslint-pluginã䜿çšããããš
@enko TSLintã¯2019幎以éãESLintãåªå ããŠéæšå¥šã«ãªããŸãããéæšå¥šã®ãªã³ã¿ãŒã®ãã©ã°ã€ã³ãæšå¥šããããšã¯ããã®åé¡ã®é©åãªè§£æ±ºçã§ã¯ãããŸããã
typescript.tsserver.experimental.enableProjectDiagnostics
ãç¡å¹ã«ããå¿
èŠããããŸãã
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
éåžžã«é ãïŒ 1ã€ã®ãã¡ã€ã«ãä¿åããã®ã«2åïŒã
ãŸããnode_modulesããã®ã©ã³ãã ãªTSãšã©ãŒã衚瀺/é衚瀺ã«ãªã£ãŠããããšã«æ°ã¥ããŸããã
ã¿ã¹ã¯ã§applyTo
é©åã«èšå®ãããšãå®éã«ã¯åé¿çããããŸãã
çŸåšè¡šç€º
{
"version": "2.0.0",
"tasks": [
{
"label": "tsc watch",
"type": "shell",
"command": "tsc",
"isBackground": true,
"args": ["--build", "--watch"],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "never",
"echo": false,
"focus": false,
"panel": "dedicated"
},
"problemMatcher": {
"base": "$tsc-watch",
"applyTo": "allDocuments"
}
}
]
}
@ samesfahani-tuplehealthã³ã¡ã³ããç·šéããŠããã®ã¿ã¹ã¯ãenableProjectDiagnostics
ã«çŽæ¥é¢é£ããŠããããšãäŒããããä¿®æ£ã§
@vdhãŸããŸããç·šéæžã¿ã ãã®åé¡ã¯ç¹ã«enableProjectDiagnostics
ååŸã§ã¯ãªããšæããŸããã åœé¢ã®åé¡ã¯ãçŸåšè¡šç€ºãããŠããªããã¡ã€ã«ã§ãã£ãŠãããããžã§ã¯ãå
šäœã®åé¡ã衚瀺ã§ããªãããšã§ããã
äžèŠãªnode_modules
ãšã©ãŒã®åé¡ã«é¢ããŠãå
·äœçã«èª¬æããæ°ããåé¡ãäœæããŸããïŒ https ïŒ
@vhd / @martaver / @ blackfan23 / @SupremeTechnopriest / @patroza / @jgoux /ä»ã®èª°ã...ãã®åé¡ã«ããã«æããããè¿œå ããŠããã ããã°ãããŸãããã°ããã解決ããã®ã«åœ¹ç«ã€ãããããŸããã
@jgouxãšåãåé¡ã§ã "source.fixAll.eslint": true
ã§ã¯æ©èœããŸãã-eslintã¯ãéããŠãããã¡ã€ã«ã ãã§ãªãããããžã§ã¯ãå
ã®ãã¹ãŠã®ãã¡ã€ã«ã®ãã§ãã¯ãéå§ããå€æŽã®ãã³ã«ãããžã§ã¯ãå
šäœãåãã§ãã¯ããŸãã VSCodeããã³ã°ããŸãã ãªãããã©ã«ãã®ESLintã®åäœãå€æŽããã®ãããããŸããããããã¯æ¬åœã«ãããã«ãŒã§ã
ãtypescript.tsserver.experimental.enableProjectDiagnosticsãã¯å®éã«ä¿®æ£ããã³æ¹åããå¿ èŠããããŸãã ããã«ãããtypescriptã以åãããã¯ããã«åŒ·åã«ãªããŸãã
@ samesfahani-tuplehealthã«ãã£ãŠæçš¿ããããœãªã¥ãŒã·ã§ã³ã¯éåžžã«ããŸãæ©èœããŸãã ããã¯ãã€ã³ããŒããããã¿ã€ãããããã¡ã€ã«ããå¥ã®ãã¡ã€ã«ã«ç§»åããã€ã³ããŒããå£ããå ŽæãèŠã€ããå¿ èŠãããå Žåã«éåžžã«éèŠã§ãã CPUã®äœ¿çšçã¯é«ããããŸããããå¿ èŠãªãšãã«å®è¡ã§ããŸãã
@phatmannããã¯åé¿çã§ããã解決ãŸããã æ©èœããã€ãã¹ãã代ããã«_å¥ã®ãŸã£ããç°ãªãæ©èœ_ã䜿çšããããšã¯ãããã©ãŒãã³ã¹ã®åé¡ãä¿®æ£ããæ¹æ³ã§ã¯ãããŸããã ç§ã¯ããã«ã€ããŠåºå·ããã®ã¯å«ãã§ããããã®çŽ æŽãããïŒãããå®éšçãªïŒæ©èœãä¿®æ£ããããšãã泚æãåŒããã€ãºã®æãæã¡ãããããŸããã ãããããã«å€ãã泚ç®ãéããã°ãããã¯ä¿¡ããããªãã»ã©åœ¹ã«ç«ã€ãã®ã«ãªããããããŸããã
@Vdhããªãã¯ãã¡ããæ£ããã§ãã ïŒå®éãã¿ã¹ã¯ã®ããåçŽãªããŒãžã§ã³ã§ããçµã¿èŸŒã¿ã®tskïŒwatchã¿ã¹ã¯ã¯ãåé¿çãšããŠãåæ§ã«æ©èœããŸãïŒã ç§ã®æ··ä¹±ã¯ããã§ãïŒåé¿çã¯éåžžã«å¹æçãã€å¹ççã§ããããããã®å·ã§åç §ãããŠããå®éã®æ©èœã¯å¿ èŠãªããšæããŠããŸãã ç§ã¯äœãã足ããªãã®ã§ããïŒ
@phatmann TypescriptãŠã©ããã¿ã¹ã¯ãå®è¡ãããå Žåã¯ããã§ã«å®è¡ã§ããŸãã ããã¯ãTSãã§ãã¯ãå®è¡ããã ãã§ã¯ãããŸããã ãã¹ãŠã®ãããžã§ã¯ããã¡ã€ã«ã«å¯ŸããŠVSCodeã®
çŸåšã®å¯äžã®å€§ããªæ¬ é¥ã¯ã node_modules
ãããªéåžžã¯çŠæ¢ãããŠãããã©ã«ããå«ããæåéããã¹ãŠã®ãã¡ã€ã«ãå®è¡ããããšã§è¡ãéããŠããŸãããšã§ãã
vscodeã§äœããè¡ãæ¹æ³ãæ€çŽ¢ãããã®ç¬éããããããªããåŸãã®ã¯4幎éã®æªè§£æ±ºã®åé¡ã§ã...ð¢
ã©ã®ãããã®ãéãšã©ãã«ééããŸããïŒ
CPUã®åé¡ããnode_modulesã®ã¹ãã£ã³ã«é¢ãããã®æ©èœã®åé¡ãããå Žåã¯ã次ã®ãã®ãå«ãŸããŠããªãéãããªããžããªã®ã«ãŒãã®ãããªå Žæã«å
±æãŸãã¯ãã¯ãŒã¯ã¹ããŒã¹ã tsconfig.json
ãªãããšã確èªããŠãã ããã
"files": []
ãã以å€ã®å Žåãããã©ã«ãã§ã¯ãtsconfigãå«ããã©ã«ããŒãŸãã¯ãã®äžã«ãããã¹ãŠã®TypeScriptãã¡ã€ã«ãå«ãŸãããããåæãããã¡ã€ã«ãå€ãããå¯èœæ§ããããŸãã
ãã®æ©èœã¯ã糞ã®ã¯ãŒã¯ã¹ããŒã¹ãšè€åã¿ã€ãã¹ã¯ãªããããããžã§ã¯ããã䜿çšãã倧èŠæš¡ãªã¢ãã¬ãã§ããŸãæ©èœããŠããŸãã
çŽ æŽãããã¢ããã€ã¹@dinofxã ããã«ãããã¥ã¡ã³ãã«åŸã£ãŠã files
代ããã«include
ãšexclude
ã䜿çšã§ããŸãã
"include": ["src/**/*"],
"exclude": ["node_modules", "test/**/*"],
ããã¯æ£ããã§ããããã€ã³ã¯ã«ãŒããã°ãããšäžèŽããªããã®ãé€å€ããå¿ èŠã¯ãããŸããã
"files": []
ã¯ããã¯ãŒã¯ã¹ããŒã¹ãtsconfig.jsonãã¡ã€ã«ïŒä»ã®tsconfig.jsonãã¡ã€ã«ã®æãåç
§ããã ãã®ãã¡ã€ã«ïŒã®å Žåã¯ããç°¡æœã§ãã ååã«ææžåãããŠããŸããããããã±ãŒãžãšã¯ãŒã¯ã¹ããŒã¹ã®æ§æãã¡ã€ã«ã«tsconfig.json
ãšããååãä»ããå¿
èŠããããŸããããããªããšãå€ãã®æ©èœãæ£ããæ©èœããŸããïŒãã®æ©èœãåç
§ã®æ€çŽ¢ããªãã¡ã¯ã¿ãªã³ã°ãªã©ïŒã
æ¡åŒµãããå
±ææ§æã®å Žåã¯ã tsconfig.browser.json
ã tsconfig.node.json
ãªã©ã®ååãä»ããããšããå§ãããŸãããã®ååãä»ãããšã "files"
ã"includes"
æ°ã«ããå¿
èŠããªããªããŸãã
@dinofxãã¡ã€ã«ãã©ããŒãµã«ã®åé¡ã¯
æãåèã«ãªãã³ã¡ã³ã
ãšããžã§çããã人ã®ããã«ã次ã®VS Codeã€ã³ãµã€ããŒãã«ãã§ã¯ãå®éšçãªãããžã§ã¯ãå šäœã®ãšã©ãŒã¬ããŒããå¯èœã«ãã
"typescript.tsserver.experimental.enableProjectDiagnostics"
èšå®ãå°å ¥ãããŠããŸãããã¯æ¬çªç°å¢ã«å¯Ÿå¿ããŠããªãããšã«æ³šæããŠãã ããã 倧èŠæš¡ãªãããžã§ã¯ãã®ããã©ãŒãã³ã¹ã®åé¡ãããã£ãŠãããã€ã³ããªã»ã³ã¹ãæãªãããå¯èœæ§ããããŸã
ãã®èšå®ã®äœ¿çšäžã«åé¡ãçºçããå Žåã¯ãæ°ããåé¡ãéããŠãã ãã