摆脱相对路径反应(删除“../..”)

getting rid of relative path react (removing "../..")

我下载了一个 React 项目 package.json :

{
  "private": true,
  "main": "src/index.js",
  "dependencies": {
    "@material-ui/core": "4.10.0",
    "@material-ui/icons": "4.9.1",
    "classnames": "2.2.6",
    "history": "4.10.1",
    "moment": "2.26.0",
    "node-sass": "4.14.1",
    "nouislider": "14.5.0",
    "prop-types": "15.7.2",
    "react": "16.13.1",
    "react-datetime": "2.16.3",
    "react-dom": "16.13.1",
    "react-router-dom": "5.2.0",
    "react-scripts": "3.4.1",
    "react-slick": "0.26.1",
    "react-swipeable-views": "0.13.9"
  },
  "devDependencies": {
    "@babel/cli": "7.10.1",
    "@babel/plugin-proposal-class-properties": "7.10.1",
    "@babel/preset-env": "7.10.1",
    "@babel/preset-react": "7.10.1",
    "eslint-config-prettier": "6.11.0",
    "eslint-plugin-prettier": "3.1.3",
    "eslint-plugin-react": "7.20.0",
    "gulp": "4.0.2",
    "gulp-append-prepend": "1.0.8",
    "prettier": "2.0.5"
  },
  "optionalDependencies": {
    "typescript": "3.9.3"
  },
  "scripts": {
    "start": "NODE_PATH=src/ react-scripts start",
    "build": "react-scripts build && gulp licenses",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject",
    "lint:check": "eslint . --ext=js,jsx;  exit 0",
    "lint:fix": "eslint . --ext=js,jsx --fix;  exit 0",
    "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start",
    "build-package-css": "node-sass src/assets/scss/material-kit-react.scss dist/material-kit-react.css",
    "build-package": "npm run build-package-css && babel src --out-dir dist",
    "compile-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.css",
    "minify-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.min.css --output-style compressed",
    "map-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.css --source-map true"
  }
  
}

我不知道开发者是如何去掉代码中的相对路径的。 例如,他导入了如下模块:import Header from "components/Header/Header.js"; 尽管如果我尝试相同,我应该这样做:import header from "../../../src/components/Header/header.js".

将link改成原来的github: https://github.com/creativetimofficial/material-kit-react/

我已经下载并安装了这个,它工作正常。 但是当我尝试复制一些代码时,它不起作用。

使用 jsconfig.json 设置绝对路径而不是相对路径,如 documentation

中所述

在他使用的提供的项目中

{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "*": ["src/*"]
    }
  }
}

这样他就可以使用绝对路径访问项目的所有文件夹和子文件夹中的所有文件,例如

import file from "component/file/file.js"

在项目的根目录中,创建一个 jsconfig.json 文件并保存它;

{
  "compilerOptions": {
    "baseUrl": "src"
  },
  "include": ["src"],
  "exclude": ["node_modules"]
}

如果您在项目中使用 eslint,则需要将其添加到 .eslintrc.js 文件中;

  ...
  settings: {
    'import/resolver': {
      node: {
        paths: ['src'],
      },
    },
  },
  ...

您现在应该可以通过绝对路径导入文件了。