How to intellisense alias module path in VSCode

后端 未结 1 499
梦如初夏
梦如初夏 2021-01-13 05:24

I would like VSCode to IntelliSense the module path so I can access it by click.

For example, after configurating jsconfig.json I\'m able to access

相关标签:
1条回答
  • 2021-01-13 05:43

    Seems I had to restart vscode.

    Here is an example of jsconfig.json file for reference:

    {
      "compilerOptions": {
        "baseUrl": "./src",
        "jsx": "react",
        "paths": {
          "@styles": ["styles/index"],
          "@fonts": ["fonts/index"],
          "@components": ["components/index"],
          "@atoms": ["components/atoms/index"],
          "@molecules": ["components/molecules/index"],
          "@organisms": ["components/organisms/index"],
          "@templates": ["components/templates/index"],
          "@icons": ["components/atoms/Icons/index"],
          "@config": ["config/index"],
          "@utils": ["utils/index"],
          "@hooks": ["hooks/index"],
          "@constants": ["constants/index"],
          "@queries": ["queries/index"],
          "@reducers": ["state/store/reducers"],
          "@actions": ["state/store/actions"],
          "@slices": ["state/slices/"],
          "@storybookHelpers": ["../.storybook/helpers"]
        }
      }
    }
    

    An example of how styles/index looks like:

    export { spring, variants } from './animation';
    export { COLORS } from './colors';
    export { default as GlobalStyle } from './GlobalStyle.styles';
    export { default as gradients } from './gradients.styles';
    export { default as mixins } from './mixins.styles';
    export { default as theme } from './theme';
    

    For a bonus: aliases.js, which is a helper which I use to define aliases in webpack, it helps to not repeat yourself, for example when using the same aliases in storybook and for the application itself.

    // Remember to update `jsconfig.json`
    
    const aliases = (prefix = `src`) => ({
      '@actions': `${prefix}/state/store/actions`,
      '@atoms': `${prefix}/components/atoms`,
      '@molecules': `${prefix}/components/molecules`,
      '@organisms': `${prefix}/components/organisms`,
      '@templates': `${prefix}/components/templates`,
      '@components': `${prefix}/components`,
      '@config': `${prefix}/config`,
      '@constants': `${prefix}/constants`,
      '@hooks': `${prefix}/hooks`,
      '@icons': `${prefix}/components/atoms/Icons`,
      '@queries': `${prefix}/queries`,
      '@reducers': `${prefix}/state/store/reducers`,
      '@slices': `${prefix}/state/slices`,
      '@styles': `${prefix}/styles`,
      '@utils': `${prefix}/utils`,
      '@storybookHelpers': `../.storybook/helpers`,
    });
    
    module.exports = aliases;
    
    0 讨论(0)
提交回复
热议问题