美文网首页
webpack alias + typeScript来使用绝对路

webpack alias + typeScript来使用绝对路

作者: NANAISNANA | 来源:发表于2020-03-27 00:16 被阅读0次

    如果你在你的react项目里面使用相对路径,那么有可能会出现下面这样的代码:

    import Button from '../../../components/button/Button'
    

    使用webpack的alias功能,可以使得我们不必使用相对路径,而是绝对路径。

    如果你在项目里面使用了TypeScript,那么你还需要对tsconfig.json做相应的配置。

    如果你使用了Jest,也需要对Jest做相关的配置。

    所以接下来,我们依次给做三项配置:

    一 webpack.config.js的相关配置
    //projectName/config/webpack.config.js
    module.exports = {
      //...
      resolve: {
        alias: {
          '@src': path.resolve(__dirname, '../src')
        }
      }
    };
    
    二 tsconfig.json

    虽然我们在第一步里,通过webpack配置了一个alias,但是typeScript并不知道webpack的黑魔法。所以,在tsconfig.json中,我们在compilerOptions选项里面需要配置baseUrlpaths两个选项来告诉typeScript, 当你见到@src/*的时候,其实是map到src/*的。

    //tsconfig.json
    "compilerOptions": {
        //...
        "baseUrl": ".",
        "paths": {
            "@src/*": [
                "src/*"
            ]
        }
    }
    
    
    三 jest.config.js

    同样的,我们也需要告诉Jest这个别名,这个可以通过jest的配置项里面的moduleNameMapper这个选项来完成。

    //jest.config.js
    {
    //...
    "moduleNameMapper": {
            "^@src/(.*)": "<rootDir>/src/$1"
        },
    }
    

    完成了以上三步的配置,我们就可以在代码里面使用@src了,之前的:

    import Button from '../../../components/button/Button'
    

    现在就可以变为:

    import Button from '@src/components/button/Button'
    

    相关文章

      网友评论

          本文标题:webpack alias + typeScript来使用绝对路

          本文链接:https://www.haomeiwen.com/subject/blqkuhtx.html