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

Create a custom decorator "@" to import a module from it's parent directory (ReactJs)

我想从使用自定义 decorator/annotation 的目录导入模块,例如 @material-ui/core 模块,如下例所示:

而不是经典导入

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

我想使用这个语法

import class1 from '@Services/module1';

感谢您的帮助!

在 TS 中:

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

在您的 tsconfig.json 文件的编译器选项中。

在 Webpack 中:

我必须弹出我的 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'),
    },
  },

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

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

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