创建一个自定义装饰器“ @”,以从其父目录(ReactJs)导入模块

时间:2019-02-26 16:58:18

标签: reactjs webpack create-react-app

我想使用自定义装饰器/注解(例如@material-ui/core模块)从目录中导入模块,如下例所示:

代替经典导入

import class1 from '../../../../Services/module1';

我想使用这种语法

import class1 from '@Services/module1';

谢谢您的帮助!

3 个答案:

答案 0 :(得分:1)

在TS中:

"paths": {
      "@app/*": ["app/*"],
      "@env/*": ["environments/*"]
}

在tsconfig.json文件中的editorOptions中。

在Webpack中:How can I use shortcut path "@" in webpack?

答案 1 :(得分:1)

我建议使用babel-plugin-module-resolver

.babelrc中使用自定义根目录或别名指定插件。这是一个示例:

{
  "plugins": [
    ["module-resolver", {
      "root": ["./src"],
      "alias": {
        "~": "./app",
        "underscore": "lodash"
      }
    }]
  ]
}

答案 2 :(得分:0)

我必须退出我的reactJs项目(使用CRA创建)->编辑webpack.config.js->添加别名:

  resolve: {
    extensions: ['.js', '.jsx'],
    alias: {
      '@pages': path.join(__dirname, '/src/pages'),
      '@components': path.join(__dirname, '/src/components'),
      '@assets': path.join(__dirname, '/src/assets'),
    },
  },