Skip to content

Commit 3bef21c

Browse files
committed
🎨 Support path alias
Detail see: facebook/create-react-app#5118
1 parent 511e0fb commit 3bef21c

File tree

7 files changed

+33
-13
lines changed

7 files changed

+33
-13
lines changed

config-overrides.js

+5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
const path = require('path')
12
const RewireReactHotLoader = require('react-app-rewire-hot-loader')
23
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
34

45
module.exports = function override(config, env) {
56
config = RewireReactHotLoader(config, env)
67
config.plugins.push(new MonacoWebpackPlugin())
8+
config.resolve = {
9+
...config.resolve,
10+
alias: { '@': path.resolve(__dirname, 'src') },
11+
}
712
return config
813
}

src/App.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { hot } from 'react-hot-loader'
2-
import React, { ChangeEvent, useState } from 'react'
3-
import Editor, { Props as EditorProps } from './components/Editor'
4-
import Monarch from './lib/tokenizer'
5-
import Token from './lib/tokenizer/token'
6-
import simpleC from './lib/languages/simpleC'
7-
import NavagationButton from './components/NavagationButton'
2+
import React, { useState } from 'react'
3+
import Editor, { Props as EditorProps } from '@/components/Editor'
4+
import Monarch from '@/lib/tokenizer'
5+
import Token from '@/lib/tokenizer/token'
6+
import simpleC from '@/lib/languages/simpleC'
7+
import NavagationButton from '@/components/NavagationButton'
88

99
const tokenizer = new Monarch(simpleC)
1010
const App = () => {

src/components/NavagationButton.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import ClickAwayListener from '@material-ui/core/ClickAwayListener'
55
import Grow from '@material-ui/core/Grow'
66
import Paper from '@material-ui/core/Paper'
77
import Popper from '@material-ui/core/Popper'
8-
import NavagationList from './NavigationList'
9-
import AnimateMenuIcon from './AnimateMenuIcon'
8+
import NavagationList from '@/components/NavigationList'
9+
import AnimateMenuIcon from '@/components/AnimateMenuIcon'
1010

1111
const useStyles = makeStyles(theme => ({
1212
fab: { position: 'fixed', top: 8, left: 8, zIndex: 1 },

src/index.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import React from 'react'
22
import ReactDOM from 'react-dom'
3-
import App from './App'
4-
import * as serviceWorker from './serviceWorker'
53
import CssBaseline from '@material-ui/core/CssBaseline'
64
import { createMuiTheme } from '@material-ui/core/styles'
75
import { ThemeProvider } from '@material-ui/styles'
6+
import App from './App'
7+
import * as serviceWorker from './serviceWorker'
88
import 'typeface-roboto'
99

1010
const theme = createMuiTheme({ typography: { useNextVariants: true } })

src/lib/languages/simpleC.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IMonarchLanguage } from '../tokenizer/monarchTypes'
1+
import { IMonarchLanguage } from '@/lib/tokenizer/monarchTypes'
22

33
// prettier-ignore
44
const simpleC : IMonarchLanguage = {

tsconfig.json

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
"compilerOptions": {
33
"target": "es6",
4-
"lib": ["dom", "dom.iterable", "esnext"],
4+
"lib": [
5+
"dom",
6+
"dom.iterable",
7+
"esnext"
8+
],
59
"allowJs": true,
610
"skipLibCheck": true,
711
"esModuleInterop": true,
@@ -21,5 +25,8 @@
2125
"suppressImplicitAnyIndexErrors": true,
2226
"jsx": "preserve"
2327
},
24-
"include": ["src"]
28+
"extends": "./tsconfig.paths.json",
29+
"include": [
30+
"src"
31+
]
2532
}

tsconfig.paths.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"compilerOptions": {
3+
"baseUrl": ".",
4+
"paths": {
5+
"@/*": ["src/*"]
6+
}
7+
}
8+
}

0 commit comments

Comments
 (0)