react项目配置

配置项目路径

tsconfig.json文件中添加baseUrl,路径就是从src开始

{
  "compilerOptions": {
    "baseUrl": "./src",


// 'pages/Login'  =>   'src/pages/Login'

url alias 

 craco/packages/craco at master · dilanx/craco · GitHub

npm i @craco/craco@alpha

根路径下创建 craco.config.js

// @craco/craco 的配置文件
const path = require("path")
module.exports = {
  // webpack 配置
  webpack: {
    // 配置别名
    alias: {
      // 约定: 使用 @ 表示 src 文件所在路径
      "@": path.resolve(__dirname, "src"),
    },
  },
}
/* package.json */

"scripts": {
-   "start": "react-scripts start",
+   "start": "craco start",
-   "build": "react-scripts build",
+   "build": "craco build"
-   "test": "react-scripts test",
+   "test": "craco test"
}

根路径下创建 path.tsconfig.json

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

在tsconfig.json中 

{
  "extends": "./path.tsconfig.json", // 新加这行
  "compilerOptions": {
  },
  "include": ["src"]
}

不能和上面的baseUrl同时使用 , 不然会报错... 浪费博主半个小时....

或者

npm run eject 然后在config文件夹下面的webpack.config.js中修改如下

   alias: {
        "@": path.resolve("src"),

生成环境和开发环境

    if (process.env.NODE_ENV === 'development') {
      console.log('开发环境')
    } else if (process.env.NODE_ENV === 'production') {
      console.log('生产环境')
    }

自适应

npm i postcss-px-to-viewport-8-plugin

然后在craco.config.js文件中配置如下

postcss-px-to-viewport/README_CN.md at 9d6c5cee5eea367fb4c7cf0c3bb1117979b5fbf4 · evrone/postcss-px-to-viewport · GitHub

// @craco/craco 的配置文件
const path = require("path")
module.exports = {
  // webpack 配置
  webpack: {
    // 配置别名
    alias: {
      // 约定: 使用 @ 表示 src 文件所在路径
      "@": path.resolve(__dirname, "src"),
    },
  },
  style: {
    postcss: {
      mode: "extends",
      loaderOptions: {
        postcssOptions: {
          ident: "postcss",
          plugins: [
            [
              "postcss-px-to-viewport-8-plugin",
              {
                viewportWidth: 1920, // 设计稿的视口宽度
              },
            ],
          ],
        },
      },
    },
  },
}

vscode json配置

{
  "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "editor.formatOnType": true,
  "workbench.iconTheme": "vscode-icons",
  "js/ts.implicitProjectConfig.checkJs": true,
  "sync.gist": "ed30311fbdf977f6814b841b01cc60e2",
  "sync.autoDownload": false,
  "sync.autoUpload": true,
  // eslint
  "eslint.format.enable": true,
  "eslint.alwaysShowStatus": true,
  "eslint.codeActionsOnSave.mode": "all",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.validate": [
    "html",
    "vue",
    "javascript",
    "typescript",
    "typescriptreact"
  ],
  "eslint.codeAction.showDocumentation": {
    "enable": true
  },
  // vetur
  "vetur.format.enable": true,
  "vetur.format.defaultFormatter.html": "prettier",
  "vetur.format.defaultFormatter.js": "prettier",
  "vetur.format.defaultFormatter.ts": "prettier",
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "explorer.confirmDelete": false,
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[dart]": {
    "editor.formatOnSave": true,
    "editor.formatOnType": true,
    "editor.selectionHighlight": false,
    "editor.suggest.snippetsPreventQuickSuggestions": false,
    "editor.suggestSelection": "first",
    "editor.tabCompletion": "onlySnippets",
    "editor.wordBasedSuggestions": false,
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "editor.detectIndentation": false,
    "editor.suggest.insertMode": "replace",
    "editor.defaultFormatter": "Dart-Code.flutter"
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "vsicons.dontShowNewVersionMessage": true,
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "typescript.updateImportsOnFileMove.enabled": "never",
  "[less]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "explorer.confirmDragAndDrop": false,
  "workbench.editorAssociations": {
    "*.svg": "default"
  },
  "files.associations": {
    "*.md": "mdx"
  },
  "git.autofetch": true,
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "remote.SSH.remotePlatform": {
    "local": "linux"
  },
  "workbench.colorTheme": "Dracula",
  "security.workspace.trust.untrustedFiles": "open",
  "git.ignoreLegacyWarning": true,
  "js/ts.implicitProjectConfig.experimentalDecorators": true,
  "javascript.updateImportsOnFileMove.enabled": "always",
  "editor.quickSuggestionsDelay": 0,
  "editor.fontSize": 12,
  "workbench.startupEditor": "none",
  "bracketPairColorizer.depreciation-notice": false,
  "markdown.preview.fontSize": 12,
  "files.autoSave": "afterDelay",
  "[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值