Closed acoutts closed 5 years ago
@acoutts can you confirm that you are using the now deprecated vscode-tslint extension and not the new https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-tslint-plugin extension? You can verify this by inspecting the installed extensions using the extensions viewlet.
Hey @egamma thanks for checking - I have confirmed with certainty that I am using the new extension and not the deprecated one.
I also updated to the latest typescript and tslint versions but no improvement:
$ tslint --version
5.16.0
$ tsc --version
Version 3.4.4
Some more system information:
code --version
1.33.1
51b0b28134d51361cf996d2f0a1c698247aeabd8
x64
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
$ uname -a
Linux xff0c 4.15.0-47-generic #50-Ubuntu SMP Wed Mar 13 10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
@acoutts this is the repository of the deprecated extension, moving to the new one.
@acoutts this is the repository of the deprecated extension, moving to the new one.
Ah thank you. Do I need to re-submit it there?
@acoutts no need to resubmit, github now supports to transfer issues to other repos
@acoutts Does this only happen when this extension is installed?
@acoutts Does this only happen when this extension is installed?
Yeah, since this is actually an issue in the extension itself as the tslint process doesn't run while using vscode otherwise.
Auto imports are provided by typescript itself, not by this plugin. This plugin could be slowing down normal typescript however. If you disable this extension and open the same project in VS Code, do automatic imports and errors show up more quickly?
Also can you share your project?
Ah very good to know. Unfortunately I can't share the code as it is internal to the project, but I did test with the extension disabled and it still seems slow. In that case that means this is probably outside of the scope for this repository. Do you have any recommendations where to go next?
Ok, I've moved this issue to VS Code to continue investigation.
Can you share more information about the project structure, such as:
You can also try collecting the TS Server log:
"typescript.tsserver.log": "verbose",
TypeScript: Open TS Server log
commandtsserver.log
file in itIf you can share the log, I can also take a look to see if anything stands out for the performance
⚠️Warning: The TypeScript log may include information from your workspace, including file paths and source code. If you have any concerns about posting this publicly on Github, just let me know and we can arrange something else. On our side, we only use these logs to investigate issues like this
I would prefer to DM the log file if possible - what's the best way to do that? Otherwise, here is some more context. I would estimate there is close to but less than 50 typescript files right now. Just using NPM for package management.
Note: I was unable to run that command, but I did ultimately locate it manually:
tsconfig.json (located in React project root):
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"noEmit": true,
"baseUrl": "./src",
"jsx": "preserve",
"experimentalDecorators": true,
"paths": {
"stores/*": ["./stores/*"],
"lib/*": ["./Pages/lib/*"],
"SharedComponents/*": ["./Pages/SharedComponents/*"],
}
},
}
Here is the output of tree -L 2
to give an overview of the folder structure. The total project folder size is ~500mb with 5,457 directories and 34,965 files.
.
├── ambient.d.ts
├── build
│ ├── android-chrome-192x192.png
│ ├── android-chrome-256x256.png
│ ├── apple-touch-icon.png
│ ├── asset-manifest.json
│ ├── browserconfig.xml
│ ├── chart
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ ├── fonts
│ ├── images
│ ├── index.html
│ ├── manifest.json
│ ├── mstile-150x150.png
│ ├── precache-manifest.a2c41794dfab8f6255a3a33105b35d8c.js
│ ├── safari-pinned-tab.svg
│ ├── service-worker.js
│ ├── site.webmanifest
│ └── static
├── config
│ ├── env.js
│ ├── jest
│ ├── paths.js
│ ├── webpack.config.js
│ └── webpackDevServer.config.js
├── DEFAULTS.env
├── node_modules
│ ├── abab
│ ├── accepts
│ ├── acorn
│ ├── acorn-dynamic-import
│ ├── acorn-globals
│ ├── acorn-jsx
│ ├── acorn-walk
│ ├── address
│ ├── after
│ ├── ajv
│ ├── ajv-errors
│ ├── ajv-keywords
│ ├── alphanum-sort
│ ├── ansi-colors
│ ├── ansi-escapes
│ ├── ansi-html
│ ├── ansi-regex
│ ├── ansi-styles
│ ├── anymatch
│ ├── append-transform
│ ├── aproba
│ ├── argparse
│ ├── aria-query
│ ├── arraybuffer.slice
│ ├── array-equal
│ ├── array-filter
│ ├── array-flatten
│ ├── array-includes
│ ├── array-map
│ ├── array-reduce
│ ├── array-union
│ ├── array-uniq
│ ├── array-unique
│ ├── arr-diff
│ ├── arr-flatten
│ ├── arrify
│ ├── arr-union
│ ├── asap
│ ├── asn1
│ ├── asn1.js
│ ├── assert
│ ├── assert-plus
│ ├── assign-symbols
│ ├── astral-regex
│ ├── ast-types-flow
│ ├── async
│ ├── async-each
│ ├── asynckit
│ ├── async-limiter
│ ├── atob
│ ├── autoprefixer
│ ├── aws4
│ ├── aws-sign2
│ ├── axobject-query
│ ├── @babel
│ ├── babel-code-frame
│ ├── babel-core
│ ├── babel-eslint
│ ├── babel-extract-comments
│ ├── babel-generator
│ ├── babel-helpers
│ ├── babel-jest
│ ├── babel-loader
│ ├── babel-messages
│ ├── babel-plugin-dynamic-import-node
│ ├── babel-plugin-emotion
│ ├── babel-plugin-istanbul
│ ├── babel-plugin-jest-hoist
│ ├── babel-plugin-macros
│ ├── babel-plugin-named-asset-import
│ ├── babel-plugin-styled-components
│ ├── babel-plugin-syntax-jsx
│ ├── babel-plugin-syntax-object-rest-spread
│ ├── babel-plugin-transform-object-rest-spread
│ ├── babel-plugin-transform-react-remove-prop-types
│ ├── babel-preset-jest
│ ├── babel-preset-react-app
│ ├── babel-register
│ ├── babel-runtime
│ ├── babel-template
│ ├── babel-traverse
│ ├── babel-types
│ ├── babylon
│ ├── backo2
│ ├── balanced-match
│ ├── base
│ ├── base64-arraybuffer
│ ├── base64-js
│ ├── base-x
│ ├── batch
│ ├── bcrypt-pbkdf
│ ├── better-assert
│ ├── bfj
│ ├── bigi
│ ├── big.js
│ ├── binary-extensions
│ ├── blob
│ ├── bluebird
│ ├── bn.js
│ ├── body-parser
│ ├── bonjour
│ ├── boolbase
│ ├── brace-expansion
│ ├── braces
│ ├── brorand
│ ├── browserify-aes
│ ├── browserify-cipher
│ ├── browserify-des
│ ├── browserify-rsa
│ ├── browserify-sign
│ ├── browserify-zlib
│ ├── browser-process-hrtime
│ ├── browser-resolve
│ ├── browserslist
│ ├── bs58
│ ├── bser
│ ├── buffer
│ ├── buffer-from
│ ├── buffer-indexof
│ ├── buffer-xor
│ ├── builtin-modules
│ ├── builtin-status-codes
│ ├── bytebuffer
│ ├── bytes
│ ├── cacache
│ ├── cache-base
│ ├── caller-callsite
│ ├── caller-path
│ ├── call-me-maybe
│ ├── callsite
│ ├── callsites
│ ├── camelcase
│ ├── camel-case
│ ├── camelize
│ ├── caniuse-api
│ ├── caniuse-lite
│ ├── capture-exit
│ ├── caseless
│ ├── case-sensitive-paths-webpack-plugin
│ ├── chalk
│ ├── change-emitter
│ ├── chardet
│ ├── check-types
│ ├── chokidar
│ ├── chownr
│ ├── chrome-trace-event
│ ├── ci-info
│ ├── cipher-base
│ ├── circular-json
│ ├── classnames
│ ├── class-utils
│ ├── clean-css
│ ├── cli-cursor
│ ├── cli-table3
│ ├── cliui
│ ├── cli-width
│ ├── clone-deep
│ ├── co
│ ├── coa
│ ├── code-point-at
│ ├── collection-visit
│ ├── color
│ ├── color-convert
│ ├── color-name
│ ├── colors
│ ├── color-string
│ ├── combined-stream
│ ├── commander
│ ├── comma-number
│ ├── commondir
│ ├── common-tags
│ ├── component-bind
│ ├── component-emitter
│ ├── component-inherit
│ ├── compressible
│ ├── compression
│ ├── concat-map
│ ├── concat-stream
│ ├── confusing-browser-globals
│ ├── connect-history-api-fallback
│ ├── console-browserify
│ ├── constants-browserify
│ ├── contains-path
│ ├── content-disposition
│ ├── content-type
│ ├── convert-source-map
│ ├── cookie
│ ├── cookie-signature
│ ├── copy-concurrently
│ ├── copy-descriptor
│ ├── core-js
│ ├── core-util-is
│ ├── cosmiconfig
│ ├── create-ecdh
│ ├── create-hash
│ ├── create-hmac
│ ├── cross-spawn
│ ├── crypto-browserify
│ ├── css-color-keywords
│ ├── css-color-names
│ ├── cssdb
│ ├── css-declaration-sorter
│ ├── cssesc
│ ├── css-loader
│ ├── cssnano
│ ├── cssnano-preset-default
│ ├── cssnano-util-get-arguments
│ ├── cssnano-util-get-match
│ ├── cssnano-util-raw-cache
│ ├── cssnano-util-same-parent
│ ├── csso
│ ├── cssom
│ ├── css-select
│ ├── css-select-base-adapter
│ ├── css-selector-tokenizer
│ ├── cssstyle
│ ├── @csstools
│ ├── css-to-react-native
│ ├── css-tree
│ ├── csstype
│ ├── css-unit-converter
│ ├── css-url-regex
│ ├── css-what
│ ├── cyclist
│ ├── damerau-levenshtein
│ ├── dashdash
│ ├── data-urls
│ ├── date-now
│ ├── debug
│ ├── decamelize
│ ├── decode-uri-component
│ ├── deep-equal
│ ├── deep-is
│ ├── deepmerge
│ ├── default-gateway
│ ├── default-require-extensions
│ ├── define-properties
│ ├── define-property
│ ├── del
│ ├── delayed-stream
│ ├── depd
│ ├── des.js
│ ├── destroy
│ ├── detect-indent
│ ├── detect-newline
│ ├── detect-node
│ ├── detect-port-alt
│ ├── diff
│ ├── diffie-hellman
│ ├── dir-glob
│ ├── dns-equal
│ ├── dns-packet
│ ├── dns-txt
│ ├── doctrine
│ ├── domain-browser
│ ├── dom-converter
│ ├── domelementtype
│ ├── domexception
│ ├── domhandler
│ ├── dom-helpers
│ ├── dom-serializer
│ ├── domutils
│ ├── dom-walk
│ ├── dotenv
│ ├── dotenv-expand
│ ├── dot-prop
│ ├── duplexer
│ ├── duplexify
│ ├── ecc-jsbn
│ ├── ecurve
│ ├── ee-first
│ ├── electron-to-chromium
│ ├── elliptic
│ ├── emoji-regex
│ ├── emojis-list
│ ├── @emotion
│ ├── encodeurl
│ ├── encoding
│ ├── end-of-stream
│ ├── engine.io-client
│ ├── engine.io-parser
│ ├── enhanced-resolve
│ ├── entities
│ ├── eosjs
│ ├── eosjs-ecc
│ ├── errno
│ ├── error-ex
│ ├── es6-promise
│ ├── es-abstract
│ ├── escape-html
│ ├── escape-string-regexp
│ ├── escodegen
│ ├── eslint
│ ├── eslint-config-react-app
│ ├── eslint-import-resolver-node
│ ├── eslint-loader
│ ├── eslint-module-utils
│ ├── eslint-plugin-flowtype
│ ├── eslint-plugin-import
│ ├── eslint-plugin-jsx-a11y
│ ├── eslint-plugin-react
│ ├── eslint-scope
│ ├── eslint-utils
│ ├── eslint-visitor-keys
│ ├── espree
│ ├── esprima
│ ├── esquery
│ ├── esrecurse
│ ├── es-to-primitive
│ ├── estraverse
│ ├── esutils
│ ├── etag
│ ├── eventemitter3
│ ├── events
│ ├── eventsource
│ ├── evp_bytestokey
│ ├── execa
│ ├── exec-sh
│ ├── exit
│ ├── expand-brackets
│ ├── expand-range
│ ├── expand-tilde
│ ├── expect
│ ├── express
│ ├── extend
│ ├── extend-shallow
│ ├── external-editor
│ ├── extglob
│ ├── extsprintf
│ ├── fast-deep-equal
│ ├── fast-glob
│ ├── fast-json-stable-stringify
│ ├── fast-levenshtein
│ ├── fastparse
│ ├── faye-websocket
│ ├── fbjs
│ ├── fb-watchman
│ ├── figgy-pudding
│ ├── figures
│ ├── file-entry-cache
│ ├── file-loader
│ ├── filename-regex
│ ├── fileset
│ ├── filesize
│ ├── fill-range
│ ├── finalhandler
│ ├── find-cache-dir
│ ├── find-root
│ ├── find-up
│ ├── flat-cache
│ ├── flatten
│ ├── flush-write-stream
│ ├── follow-redirects
│ ├── forever-agent
│ ├── for-in
│ ├── fork-ts-checker-webpack-plugin-alt
│ ├── form-data
│ ├── for-own
│ ├── forwarded
│ ├── fragment-cache
│ ├── fresh
│ ├── from2
│ ├── fs-extra
│ ├── fs.realpath
│ ├── fs-write-stream-atomic
│ ├── functional-red-black-tree
│ ├── function-bind
│ ├── get-caller-file
│ ├── get-own-enumerable-property-symbols
│ ├── getpass
│ ├── get-random-values
│ ├── get-stream
│ ├── get-value
│ ├── glob
│ ├── global
│ ├── global-modules
│ ├── global-prefix
│ ├── globals
│ ├── glob-base
│ ├── globby
│ ├── glob-parent
│ ├── glob-to-regexp
│ ├── graceful-fs
│ ├── growly
│ ├── gzip-size
│ ├── h2x-core
│ ├── h2x-generate
│ ├── h2x-parse
│ ├── h2x-plugin-jsx
│ ├── h2x-traverse
│ ├── h2x-types
│ ├── handlebars
│ ├── handle-thing
│ ├── harmony-reflect
│ ├── har-schema
│ ├── har-validator
│ ├── has
│ ├── has-ansi
│ ├── has-binary2
│ ├── has-cors
│ ├── has-flag
│ ├── hash-base
│ ├── hash.js
│ ├── has-symbols
│ ├── has-value
│ ├── has-values
│ ├── he
│ ├── hex-color-regex
│ ├── history
│ ├── hmac-drbg
│ ├── hoek
│ ├── hoist-non-react-statics
│ ├── homedir-polyfill
│ ├── home-or-tmp
│ ├── hoopy
│ ├── hosted-git-info
│ ├── hpack.js
│ ├── hsla-regex
│ ├── hsl-regex
│ ├── html-comment-regex
│ ├── html-encoding-sniffer
│ ├── html-entities
│ ├── html-minifier
│ ├── htmlparser2
│ ├── html-webpack-plugin
│ ├── http-deceiver
│ ├── http-errors
│ ├── http-parser-js
│ ├── http-proxy
│ ├── http-proxy-middleware
│ ├── https-browserify
│ ├── http-signature
│ ├── i
│ ├── iconv-lite
│ ├── icss-replace-symbols
│ ├── icss-utils
│ ├── identity-obj-proxy
│ ├── ieee754
│ ├── iferr
│ ├── ignore
│ ├── immer
│ ├── import-cwd
│ ├── import-fresh
│ ├── import-from
│ ├── import-local
│ ├── imurmurhash
│ ├── indexes-of
│ ├── indexof
│ ├── inflight
│ ├── inherits
│ ├── ini
│ ├── inquirer
│ ├── internal-ip
│ ├── invariant
│ ├── invert-kv
│ ├── ip
│ ├── ipaddr.js
│ ├── ip-regex
│ ├── is-absolute-url
│ ├── is-accessor-descriptor
│ ├── isarray
│ ├── is-arrayish
│ ├── is-binary-path
│ ├── is-buffer
│ ├── is-callable
│ ├── is-ci
│ ├── is-color-stop
│ ├── is-data-descriptor
│ ├── is-date-object
│ ├── is-descriptor
│ ├── is-directory
│ ├── is-dotfile
│ ├── isemail
│ ├── is-equal-shallow
│ ├── isexe
│ ├── is-extendable
│ ├── is-extglob
│ ├── is-finite
│ ├── is-fullwidth-code-point
│ ├── is-generator-fn
│ ├── is-glob
│ ├── is-number
│ ├── is-obj
│ ├── isobject
│ ├── isomorphic-fetch
│ ├── isomorphic-ws
│ ├── is-path-cwd
│ ├── is-path-in-cwd
│ ├── is-path-inside
│ ├── is-plain-object
│ ├── is-posix-bracket
│ ├── is-primitive
│ ├── is-promise
│ ├── is-regex
│ ├── is-regexp
│ ├── is-resolvable
│ ├── is-root
│ ├── isstream
│ ├── is-stream
│ ├── is-svg
│ ├── is-symbol
│ ├── istanbul-api
│ ├── istanbul-lib-coverage
│ ├── istanbul-lib-hook
│ ├── istanbul-lib-instrument
│ ├── istanbul-lib-report
│ ├── istanbul-lib-source-maps
│ ├── istanbul-reports
│ ├── is-typedarray
│ ├── is-utf8
│ ├── is-windows
│ ├── is-wsl
│ ├── jest
│ ├── jest-changed-files
│ ├── jest-config
│ ├── jest-diff
│ ├── jest-docblock
│ ├── jest-each
│ ├── jest-environment-jsdom
│ ├── jest-environment-node
│ ├── jest-get-type
│ ├── jest-haste-map
│ ├── jest-jasmine2
│ ├── jest-leak-detector
│ ├── jest-matcher-utils
│ ├── jest-message-util
│ ├── jest-mock
│ ├── jest-pnp-resolver
│ ├── jest-regex-util
│ ├── jest-resolve
│ ├── jest-resolve-dependencies
│ ├── jest-runner
│ ├── jest-runtime
│ ├── jest-serializer
│ ├── jest-snapshot
│ ├── jest-util
│ ├── jest-validate
│ ├── jest-watcher
│ ├── jest-worker
│ ├── joi
│ ├── jsbn
│ ├── jsdom
│ ├── jsesc
│ ├── js-levenshtein
│ ├── json3
│ ├── json5
│ ├── jsonfile
│ ├── jsonify
│ ├── json-parse-better-errors
│ ├── json-schema
│ ├── json-schema-traverse
│ ├── json-stable-stringify
│ ├── json-stable-stringify-without-jsonify
│ ├── json-stringify-safe
│ ├── jsprim
│ ├── js-tokens
│ ├── jsx-ast-utils
│ ├── js-yaml
│ ├── killable
│ ├── kind-of
│ ├── kleur
│ ├── last-call-webpack-plugin
│ ├── lazy-cache
│ ├── lcid
│ ├── left-pad
│ ├── leven
│ ├── levn
│ ├── loader-fs-cache
│ ├── loader-runner
│ ├── loader-utils
│ ├── load-json-file
│ ├── locate-path
│ ├── lodash
│ ├── lodash.camelcase
│ ├── lodash.memoize
│ ├── lodash._reinterpolate
│ ├── lodash.sortby
│ ├── lodash.tail
│ ├── lodash.template
│ ├── lodash.templatesettings
│ ├── lodash.uniq
│ ├── loglevel
│ ├── long
│ ├── loose-envify
│ ├── lower-case
│ ├── lru-cache
│ ├── make-dir
│ ├── makeerror
│ ├── mamacro
│ ├── map-age-cleaner
│ ├── map-cache
│ ├── map-visit
│ ├── math-random
│ ├── md5.js
│ ├── mdn-data
│ ├── media-typer
│ ├── mem
│ ├── memoize-one
│ ├── memory-fs
│ ├── merge
│ ├── merge2
│ ├── merge-deep
│ ├── merge-descriptors
│ ├── merge-stream
│ ├── methods
│ ├── micromatch
│ ├── miller-rabin
│ ├── mime
│ ├── mime-db
│ ├── mime-types
│ ├── mimic-fn
│ ├── min-document
│ ├── mini-css-extract-plugin
│ ├── minimalistic-assert
│ ├── minimalistic-crypto-utils
│ ├── minimatch
│ ├── minimist
│ ├── mississippi
│ ├── mixin-deep
│ ├── mixin-object
│ ├── mkdirp
│ ├── mobx
│ ├── mobx-localstorage
│ ├── mobx-react
│ ├── mobx-react-router
│ ├── moment
│ ├── moment-timezone
│ ├── move-concurrently
│ ├── @mrmlnc
│ ├── ms
│ ├── multicast-dns
│ ├── multicast-dns-service-types
│ ├── mute-stream
│ ├── nanomatch
│ ├── natural-compare
│ ├── negotiator
│ ├── neo-async
│ ├── nice-try
│ ├── no-case
│ ├── node-fetch
│ ├── node-forge
│ ├── node-int64
│ ├── @nodelib
│ ├── node-libs-browser
│ ├── node-notifier
│ ├── node-releases
│ ├── normalize-package-data
│ ├── normalize-path
│ ├── normalize-range
│ ├── normalize-url
│ ├── npm-run-path
│ ├── nth-check
│ ├── num2fraction
│ ├── number-is-nan
│ ├── nwsapi
│ ├── oauth-sign
│ ├── object-assign
│ ├── object.assign
│ ├── object-component
│ ├── object-copy
│ ├── object.getownpropertydescriptors
│ ├── object-hash
│ ├── object-keys
│ ├── object.omit
│ ├── object.pick
│ ├── object.values
│ ├── object-visit
│ ├── obuf
│ ├── once
│ ├── onetime
│ ├── on-finished
│ ├── on-headers
│ ├── opn
│ ├── optimist
│ ├── optimize-css-assets-webpack-plugin
│ ├── optionator
│ ├── original
│ ├── os-browserify
│ ├── os-homedir
│ ├── os-locale
│ ├── os-tmpdir
│ ├── pako
│ ├── parallel-transform
│ ├── param-case
│ ├── parse5
│ ├── parse-asn1
│ ├── parse-glob
│ ├── parse-json
│ ├── parse-passwd
│ ├── parseqs
│ ├── parseuri
│ ├── parseurl
│ ├── pascalcase
│ ├── path-browserify
│ ├── path-dirname
│ ├── path-exists
│ ├── path-is-absolute
│ ├── path-is-inside
│ ├── path-key
│ ├── path-parse
│ ├── path-to-regexp
│ ├── path-type
│ ├── pbkdf2
│ ├── p-defer
│ ├── performance-now
│ ├── p-finally
│ ├── pify
│ ├── pinkie
│ ├── pinkie-promise
│ ├── p-is-promise
│ ├── pkg-dir
│ ├── pkg-up
│ ├── p-limit
│ ├── p-locate
│ ├── pluralize
│ ├── p-map
│ ├── pn
│ ├── pnp-webpack-plugin
│ ├── portfinder
│ ├── posix-character-classes
│ ├── postcss
│ ├── postcss-attribute-case-insensitive
│ ├── postcss-calc
│ ├── postcss-color-functional-notation
│ ├── postcss-color-gray
│ ├── postcss-color-hex-alpha
│ ├── postcss-colormin
│ ├── postcss-color-mod-function
│ ├── postcss-color-rebeccapurple
│ ├── postcss-convert-values
│ ├── postcss-custom-media
│ ├── postcss-custom-properties
│ ├── postcss-custom-selectors
│ ├── postcss-dir-pseudo-class
│ ├── postcss-discard-comments
│ ├── postcss-discard-duplicates
│ ├── postcss-discard-empty
│ ├── postcss-discard-overridden
│ ├── postcss-double-position-gradients
│ ├── postcss-env-function
│ ├── postcss-flexbugs-fixes
│ ├── postcss-focus-visible
│ ├── postcss-focus-within
│ ├── postcss-font-variant
│ ├── postcss-gap-properties
│ ├── postcss-image-set-function
│ ├── postcss-initial
│ ├── postcss-lab-function
│ ├── postcss-load-config
│ ├── postcss-loader
│ ├── postcss-logical
│ ├── postcss-media-minmax
│ ├── postcss-merge-longhand
│ ├── postcss-merge-rules
│ ├── postcss-minify-font-values
│ ├── postcss-minify-gradients
│ ├── postcss-minify-params
│ ├── postcss-minify-selectors
│ ├── postcss-modules-extract-imports
│ ├── postcss-modules-local-by-default
│ ├── postcss-modules-scope
│ ├── postcss-modules-values
│ ├── postcss-nesting
│ ├── postcss-normalize-charset
│ ├── postcss-normalize-display-values
│ ├── postcss-normalize-positions
│ ├── postcss-normalize-repeat-style
│ ├── postcss-normalize-string
│ ├── postcss-normalize-timing-functions
│ ├── postcss-normalize-unicode
│ ├── postcss-normalize-url
│ ├── postcss-normalize-whitespace
│ ├── postcss-ordered-values
│ ├── postcss-overflow-shorthand
│ ├── postcss-page-break
│ ├── postcss-place
│ ├── postcss-preset-env
│ ├── postcss-pseudo-class-any-link
│ ├── postcss-reduce-initial
│ ├── postcss-reduce-transforms
│ ├── postcss-replace-overflow-wrap
│ ├── postcss-safe-parser
│ ├── postcss-selector-matches
│ ├── postcss-selector-not
│ ├── postcss-selector-parser
│ ├── postcss-svgo
│ ├── postcss-unique-selectors
│ ├── postcss-value-parser
│ ├── postcss-values-parser
│ ├── prelude-ls
│ ├── preserve
│ ├── prettier
│ ├── pretty-bytes
│ ├── pretty-error
│ ├── pretty-format
│ ├── private
│ ├── process
│ ├── process-nextick-args
│ ├── progress
│ ├── promise
│ ├── promise-inflight
│ ├── prompts
│ ├── prop-types
│ ├── proxy-addr
│ ├── prr
│ ├── pseudomap
│ ├── psl
│ ├── p-try
│ ├── public-encrypt
│ ├── pump
│ ├── pumpify
│ ├── punycode
│ ├── q
│ ├── qs
│ ├── querystring
│ ├── querystring-es3
│ ├── querystringify
│ ├── raf
│ ├── randomatic
│ ├── randombytes
│ ├── randomfill
│ ├── range-parser
│ ├── raw-body
│ ├── react
│ ├── react-app-polyfill
│ ├── react-dev-utils
│ ├── react-dom
│ ├── react-error-overlay
│ ├── react-icons
│ ├── react-is
│ ├── reactive-localstorage
│ ├── react-lifecycles-compat
│ ├── react-router
│ ├── react-router-dom
│ ├── react-sparklines
│ ├── react-spinners
│ ├── react-toastify
│ ├── react-tooltip
│ ├── react-transition-group
│ ├── react-virtualized
│ ├── readable-stream
│ ├── readdirp
│ ├── read-pkg
│ ├── read-pkg-up
│ ├── realpath-native
│ ├── recompose
│ ├── recursive-readdir
│ ├── regenerate
│ ├── regenerate-unicode-properties
│ ├── regenerator-runtime
│ ├── regenerator-transform
│ ├── regex-cache
│ ├── regex-not
│ ├── regexpp
│ ├── regexp-tree
│ ├── regexpu-core
│ ├── regjsgen
│ ├── regjsparser
│ ├── relateurl
│ ├── remove-trailing-separator
│ ├── renderkid
│ ├── repeat-element
│ ├── repeating
│ ├── repeat-string
│ ├── request
│ ├── request-promise-core
│ ├── request-promise-native
│ ├── require-directory
│ ├── require-from-string
│ ├── require-main-filename
│ ├── requires-port
│ ├── require-uncached
│ ├── resolve
│ ├── resolve-cwd
│ ├── resolve-dir
│ ├── resolve-from
│ ├── resolve-pathname
│ ├── resolve-url
│ ├── restore-cursor
│ ├── ret
│ ├── rgba-regex
│ ├── rgb-regex
│ ├── rimraf
│ ├── ripemd160
│ ├── rsvp
│ ├── run-async
│ ├── run-queue
│ ├── rxjs
│ ├── safe-buffer
│ ├── safer-buffer
│ ├── safe-regex
│ ├── sane
│ ├── sass-loader
│ ├── sax
│ ├── saxes
│ ├── scatterjs-core
│ ├── scatterjs-plugin-eosjs2
│ ├── scheduler
│ ├── schema-utils
│ ├── select-hose
│ ├── selfsigned
│ ├── semver
│ ├── send
│ ├── serialize-javascript
│ ├── serve-index
│ ├── serve-static
│ ├── set-blocking
│ ├── setimmediate
│ ├── setprototypeof
│ ├── set-value
│ ├── sha.js
│ ├── shallow-clone
│ ├── shebang-command
│ ├── shebang-regex
│ ├── shell-quote
│ ├── shellwords
│ ├── signal-exit
│ ├── simple-swizzle
│ ├── sisteransi
│ ├── slash
│ ├── slice-ansi
│ ├── snapdragon
│ ├── snapdragon-node
│ ├── snapdragon-util
│ ├── socket.io-client
│ ├── socket.io-parser
│ ├── sockjs
│ ├── sockjs-client
│ ├── source-list-map
│ ├── source-map
│ ├── source-map-resolve
│ ├── source-map-support
│ ├── source-map-url
│ ├── spdx-correct
│ ├── spdx-exceptions
│ ├── spdx-expression-parse
│ ├── spdx-license-ids
│ ├── spdy
│ ├── spdy-transport
│ ├── split-string
│ ├── sprintf-js
│ ├── sshpk
│ ├── ssri
│ ├── stable
│ ├── stack-utils
│ ├── static-extend
│ ├── statuses
│ ├── stealthy-require
│ ├── stream-browserify
│ ├── stream-each
│ ├── stream-http
│ ├── stream-shift
│ ├── string_decoder
│ ├── stringify-object
│ ├── string-length
│ ├── string-width
│ ├── strip-ansi
│ ├── strip-bom
│ ├── strip-comments
│ ├── strip-eof
│ ├── strip-json-comments
│ ├── styled-components
│ ├── stylehacks
│ ├── style-loader
│ ├── stylis
│ ├── stylis-rule-sheet
│ ├── supports-color
│ ├── svgo
│ ├── @svgr
│ ├── symbol-observable
│ ├── symbol-tree
│ ├── table
│ ├── tapable
│ ├── terser
│ ├── terser-webpack-plugin
│ ├── test-exclude
│ ├── text-encoding
│ ├── text-table
│ ├── throat
│ ├── through
│ ├── through2
│ ├── thunky
│ ├── timers-browserify
│ ├── timsort
│ ├── tmp
│ ├── tmpl
│ ├── to-array
│ ├── to-arraybuffer
│ ├── to-fast-properties
│ ├── to-object-path
│ ├── topo
│ ├── to-regex
│ ├── to-regex-range
│ ├── tough-cookie
│ ├── tr46
│ ├── trim-right
│ ├── tryer
│ ├── tsconfig-paths
│ ├── tsconfig-paths-webpack-plugin
│ ├── tslib
│ ├── tslint
│ ├── tslint-config-standard
│ ├── tslint-eslint-rules
│ ├── tslint-loader
│ ├── tslint-react
│ ├── tsutils
│ ├── tty-browserify
│ ├── tunnel-agent
│ ├── tweetnacl
│ ├── type-check
│ ├── typedarray
│ ├── type-is
│ ├── @types
│ ├── typescript
│ ├── typescript-plugin-styled-components
│ ├── ua-parser-js
│ ├── uglify-js
│ ├── uglifyjs-webpack-plugin
│ ├── unicode-canonical-property-names-ecmascript
│ ├── unicode-match-property-ecmascript
│ ├── unicode-match-property-value-ecmascript
│ ├── unicode-property-aliases-ecmascript
│ ├── union-value
│ ├── uniq
│ ├── uniqs
│ ├── unique-filename
│ ├── unique-slug
│ ├── universalify
│ ├── unpipe
│ ├── unquote
│ ├── unset-value
│ ├── upath
│ ├── upper-case
│ ├── uri-js
│ ├── urix
│ ├── url
│ ├── url-loader
│ ├── url-parse
│ ├── use
│ ├── util
│ ├── utila
│ ├── util-deprecate
│ ├── util.promisify
│ ├── utils-merge
│ ├── uuid
│ ├── validate-npm-package-license
│ ├── value-equal
│ ├── vary
│ ├── vendors
│ ├── verror
│ ├── vm-browserify
│ ├── w3c-hr-time
│ ├── w3c-xmlserializer
│ ├── walker
│ ├── warning
│ ├── watch
│ ├── watchpack
│ ├── wbuf
│ ├── @webassemblyjs
│ ├── webidl-conversions
│ ├── webpack
│ ├── webpack-dev-middleware
│ ├── webpack-dev-server
│ ├── webpack-log
│ ├── webpack-manifest-plugin
│ ├── webpack-sources
│ ├── websocket-driver
│ ├── websocket-extensions
│ ├── whatwg-encoding
│ ├── whatwg-fetch
│ ├── whatwg-mimetype
│ ├── whatwg-url
│ ├── which
│ ├── which-module
│ ├── wordwrap
│ ├── workbox-background-sync
│ ├── workbox-broadcast-cache-update
│ ├── workbox-build
│ ├── workbox-cacheable-response
│ ├── workbox-cache-expiration
│ ├── workbox-core
│ ├── workbox-google-analytics
│ ├── workbox-navigation-preload
│ ├── workbox-precaching
│ ├── workbox-range-requests
│ ├── workbox-routing
│ ├── workbox-strategies
│ ├── workbox-streams
│ ├── workbox-sw
│ ├── workbox-webpack-plugin
│ ├── worker-farm
│ ├── wrap-ansi
│ ├── wrappy
│ ├── write
│ ├── write-file-atomic
│ ├── ws
│ ├── xmlchars
│ ├── xmlhttprequest-ssl
│ ├── xml-name-validator
│ ├── xregexp
│ ├── xtend
│ ├── @xtuc
│ ├── y18n
│ ├── yallist
│ ├── yargs
│ ├── yargs-parser
│ └── yeast
├── package.json
├── package-lock.json
├── public
│ ├── android-chrome-192x192.png
│ ├── android-chrome-256x256.png
│ ├── apple-touch-icon.png
│ ├── asset-manifest.json
│ ├── browserconfig.xml
│ ├── chart
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon.ico
│ ├── fonts
│ ├── images
│ ├── index.html
│ ├── manifest.json
│ ├── mstile-150x150.png
│ ├── safari-pinned-tab.svg
│ └── site.webmanifest
├── README.md
├── scripts
│ ├── build.js
│ ├── start.js
│ └── test.js
├── src
│ ├── index.tsx
│ ├── localization
│ ├── Pages
│ ├── react-app-env.d.ts
│ ├── serviceWorker.ts
│ └── stores
├── tsconfig.json
└── tslint.json
You can send the logs to matb at microsoft
One other idea is to try setting explicit includes or excludes in your tsconfig
to ensure that only files you want are picked up as part of the project. For example:
{
"compilerOptions": {...},
"include": [
"src/**/*"
]
}
You can see the full list of files included in your project in the logs too. They are printed in sections that look like:
Info 1626 [11:59:52.378] Project '/Users/matb/projects/vscode-stuff/tsconfig.json' (Configured) 0
Info 1626 [11:59:52.410] Files (74)
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es2015.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es2016.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es2017.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es2018.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.iterable.d.ts
/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d
....
I was finally able to resolve it. The culprit was the @types/styled-components
package in my project and a recent change to typescript: https://github.com/Microsoft/TypeScript/issues/30663#issuecomment-480462812
I resolved the issue by upgrading to typescript 3.5 and installing the latest version of @types/styled-components (v4.1.14)
, and making sure VSCode is using tsc 3.5 - lightning fast again!
@acoutts You are a star, I tried to solve this for forever. Upgrading @types/styled-components solved this issue for me as well. Thank you!
Steps to Reproduce:
This has always been very fast but lately it has suddenly become so slow it's almost unbearable. I've sat waiting up to 45 seconds for it to finish "thinking" which usually takes no more than a few seconds.
I have a 5.0 GHz i7 and 32gb of RAM so the system resources are not an issue. When it's stuck lagging, there's a single thread of
tsserver.js
using 100% cpu but otherwise the system seems relaxed.