-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Description
Bug Report
Adding a plugin to tsconfig.json does not load when the TypeScript version is set to the vscode version. For example, when adding:
"plugins": [
{
"name": "ts-graphql-plugin",
"schema": "path-or-url-to-your-schema.graphql",
"tag": "gql"
}
]
The tsserver.logs in visual studio code produce:
Info 28 [10:29:22.355] Failed to load module 'ts-graphql-plugin' from /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/node_modules: Error: Could not resolve JS module 'ts-graphql-plugin' starting at '/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/node_modules'. Looked in: /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/ts-graphql-plugin/package.json, /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/ts-graphql-plugin.js, /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/ts-graphql-plugin.jsx, /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/ts-graphql-plugin/index.js, /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/ts-graphql-plugin/index.jsx, /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/ts-graphql-plugin/package.json, /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/ts-graphql-plugin.js, /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/ts-graphql-plugin.jsx, /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/ts-graphql-plugin/index.js, /Applications/Visual Studio Code.app/Contents/Resources/app/node_modules/ts-graphql-plugin/index.jsx, /Applications/Visual Studio Code.app/Contents/Resources/node_modules/ts-graphql-plugin/package.json, /Applications/Visual Studio Code.app/Contents/Resources/node_modules/ts-graphql-plugin.js, /Applications/Visual Studio Code.app/Contents/Resources/node_modules/ts-graphql-plugin.jsx, /Applications/Visual Studio Code.app/Contents/Resources/node_modules/ts-graphql-plugin/index.js, /Applications/Visual Studio Code.app/Contents/Resources/node_modules/ts-graphql-plugin/index.jsx, /Applications/Visual Studio Code.app/Contents/node_modules/ts-graphql-plugin/package.json, /Applications/Visual Studio Code.app/Contents/node_modules/ts-graphql-plugin.js, /Applications/Visual Studio Code.app/Contents/node_modules/ts-graphql-plugin.jsx, /Applications/Visual Studio Code.app/Contents/node_modules/ts-graphql-plugin/index.js, /Applications/Visual Studio Code.app/Contents/node_modules/ts-graphql-plugin/index.jsx, /Applications/Visual Studio Code.app/node_modules/ts-graphql-plugin/package.json, /Applications/Visual Studio Code.app/node_modules/ts-graphql-plugin.js, /Applications/Visual Studio Code.app/node_modules/ts-graphql-plugin.jsx, /Applications/Visual Studio Code.app/node_modules/ts-graphql-plugin/index.js, /Applications/Visual Studio Code.app/node_modules/ts-graphql-plugin/index.jsx, /Applications/node_modules/ts-graphql-plugin/package.json, /Applications/node_modules/ts-graphql-plugin.js, /Applications/node_modules/ts-graphql-plugin.jsx, /Applications/node_modules/ts-graphql-plugin/index.js, /Applications/node_modules/ts-graphql-plugin/index.jsx, /node_modules/ts-graphql-plugin/package.json, /node_modules/ts-graphql-plugin.js, /node_modules/ts-graphql-plugin.jsx, /node_modules/ts-graphql-plugin/index.js, /node_modules/ts-graphql-plugin/index.jsx
This suggests it is resolving the plugin from the tsserver.js location, not from the tsconfig.json location which would produce more consistent behaviour.
Simarily, when installing a custom plugin using a path, I need to use a path relative to the tsserver.js file, not from the tsconfig.json file. So for example if my directory structure is:
foo/node_modules/typescript/lib/tsserver.js
foo/tsconfig.json
foo/my_plugin.js
My tsconfig.json needs to be:
plugins: [{ name: '../../../my_plugin.js' }]
Instead of the much more intuitive:
plugins: [{ name: './my_plugin.js' }]
The loading of plugins would be a lot more intuitive and consistent if they were resolve from the tsconfig.json file they are configured in.
🔎 Search Terms
language service plugin vscode intellij visual studio code
🕗 Version & Regression Information
TypeScript: 4.1.2
VisualStudio code: 1.53
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about plugins
🙁 Actual behavior
Language service plugins are resolved from the loading tsserver.js file.
🙂 Expected behavior
Language service plugins are resolved from the tsconfig.json file they are configured in.