Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
马贞晓
/
templateReact
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 2f67b89d
authored
Nov 11, 2019
by
马贞晓
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
按需引入
1 parent
c92e0f99
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
176 additions
and
13 deletions
config/webpack.config.js
package.json
src/App.css
src/App.js
src/App.less
yarn.lock
config/webpack.config.js
View file @
2f67b89
...
...
@@ -49,6 +49,8 @@ const cssRegex = /\.css$/;
const
cssModuleRegex
=
/
\.
module
\.
css$/
;
const
sassRegex
=
/
\.(
scss|sass
)
$/
;
const
sassModuleRegex
=
/
\.
module
\.(
scss|sass
)
$/
;
const
lessRegex
=
/
\.(
less
)
$/
;
const
lessModuleRegex
=
/
\.
module
\.(
less
)
$/
;
// This is the production and development configuration.
// It is focused on developer experience, fast rebuilds, and a minimal bundle.
...
...
@@ -394,6 +396,11 @@ module.exports = function(webpackEnv) {
},
},
],
[
"import"
,
{
"libraryName"
:
"antd"
,
"libraryDirectory"
:
"es"
,
"style"
:
"css"
// `style: true` 会加载 less 文件
}]
],
// This is a feature of `babel-loader` for webpack (not Babel itself).
// It enables caching results in ./node_modules/.cache/babel-loader/
...
...
@@ -495,6 +502,34 @@ module.exports = function(webpackEnv) {
'sass-loader'
),
},
{
test
:
lessRegex
,
exclude
:
lessModuleRegex
,
use
:
getStyleLoaders
(
{
importLoaders
:
2
,
sourceMap
:
isEnvProduction
&&
shouldUseSourceMap
,
},
'less-loader'
),
// Don't consider CSS imports dead code even if the
// containing package claims to have no side effects.
// Remove this when webpack adds a warning or an error for this.
// See https://github.com/webpack/webpack/issues/6571
sideEffects
:
true
,
},
{
test
:
lessModuleRegex
,
use
:
getStyleLoaders
(
{
importLoaders
:
2
,
sourceMap
:
isEnvProduction
&&
shouldUseSourceMap
,
modules
:
true
,
getLocalIdent
:
getCSSModuleLocalIdent
,
},
'less-loader'
),
},
// "file" loader makes sure those assets get served by WebpackDevServer.
// When you `import` an asset, you get its (virtual) filename.
// In production, they would get copied to the `build` folder.
...
...
package.json
View file @
2f67b89
...
...
@@ -3,15 +3,68 @@
"version"
:
"0.1.0"
,
"private"
:
true
,
"dependencies"
:
{
"@babel/core"
:
"7.6.0"
,
"@svgr/webpack"
:
"4.3.2"
,
"@typescript-eslint/eslint-plugin"
:
"^2.2.0"
,
"@typescript-eslint/parser"
:
"^2.2.0"
,
"antd"
:
"^3.25.1"
,
"babel-eslint"
:
"10.0.3"
,
"babel-jest"
:
"^24.9.0"
,
"babel-loader"
:
"8.0.6"
,
"babel-plugin-named-asset-import"
:
"^0.3.4"
,
"babel-preset-react-app"
:
"^9.0.2"
,
"camelcase"
:
"^5.2.0"
,
"case-sensitive-paths-webpack-plugin"
:
"2.2.0"
,
"css-loader"
:
"2.1.1"
,
"dotenv"
:
"6.2.0"
,
"dotenv-expand"
:
"5.1.0"
,
"eslint"
:
"^6.1.0"
,
"eslint-config-react-app"
:
"^5.0.2"
,
"eslint-loader"
:
"3.0.2"
,
"eslint-plugin-flowtype"
:
"3.13.0"
,
"eslint-plugin-import"
:
"2.18.2"
,
"eslint-plugin-jsx-a11y"
:
"6.2.3"
,
"eslint-plugin-react"
:
"7.14.3"
,
"eslint-plugin-react-hooks"
:
"^1.6.1"
,
"file-loader"
:
"3.0.1"
,
"fs-extra"
:
"7.0.1"
,
"html-webpack-plugin"
:
"4.0.0-beta.5"
,
"identity-obj-proxy"
:
"3.0.0"
,
"is-wsl"
:
"^1.1.0"
,
"jest"
:
"24.9.0"
,
"jest-environment-jsdom-fourteen"
:
"0.1.0"
,
"jest-resolve"
:
"24.9.0"
,
"jest-watch-typeahead"
:
"0.4.0"
,
"mini-css-extract-plugin"
:
"0.8.0"
,
"moment"
:
"^2.24.0"
,
"optimize-css-assets-webpack-plugin"
:
"5.0.3"
,
"pnp-webpack-plugin"
:
"1.5.0"
,
"postcss-flexbugs-fixes"
:
"4.1.0"
,
"postcss-loader"
:
"3.0.0"
,
"postcss-normalize"
:
"7.0.1"
,
"postcss-preset-env"
:
"6.7.0"
,
"postcss-safe-parser"
:
"4.0.1"
,
"react"
:
"^16.11.0"
,
"react-app-polyfill"
:
"^1.0.4"
,
"react-dev-utils"
:
"^9.1.0"
,
"react-dom"
:
"^16.11.0"
,
"react-scripts"
:
"3.2.0"
"resolve"
:
"1.12.0"
,
"resolve-url-loader"
:
"3.1.0"
,
"sass-loader"
:
"7.2.0"
,
"semver"
:
"6.3.0"
,
"style-loader"
:
"1.0.0"
,
"terser-webpack-plugin"
:
"1.4.1"
,
"ts-pnp"
:
"1.1.4"
,
"url-loader"
:
"2.1.0"
,
"webpack"
:
"4.41.0"
,
"webpack-dev-server"
:
"3.2.1"
,
"webpack-manifest-plugin"
:
"2.1.1"
,
"workbox-webpack-plugin"
:
"4.3.1"
},
"scripts"
:
{
"start"
:
"react-scripts start"
,
"build"
:
"react-scripts build"
,
"test"
:
"react-scripts test"
,
"eject"
:
"react-scripts eject"
"start"
:
"node scripts/start.js"
,
"build"
:
"node scripts/build.js"
,
"test"
:
"node scripts/test.js"
},
"eslintConfig"
:
{
"extends"
:
"react-app"
...
...
@@ -29,8 +82,62 @@
]
},
"devDependencies"
:
{
"@babel/helper-create-regexp-features-plugin"
:
"^7.7.2"
,
"babel-plugin-import"
:
"^1.12.2"
,
"less"
:
"^3.10.3"
,
"less-loader"
:
"^5.0.0"
},
"jest"
:
{
"roots"
:
[
"<rootDir>/src"
],
"collectCoverageFrom"
:
[
"src/**/*.{js,jsx,ts,tsx}"
,
"!src/**/*.d.ts"
],
"setupFiles"
:
[
"react-app-polyfill/jsdom"
],
"setupFilesAfterEnv"
:
[],
"testMatch"
:
[
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}"
,
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
],
"testEnvironment"
:
"jest-environment-jsdom-fourteen"
,
"transform"
:
{
"^.+
\\
.(js|jsx|ts|tsx)$"
:
"<rootDir>/node_modules/babel-jest"
,
"^.+
\\
.css$"
:
"<rootDir>/config/jest/cssTransform.js"
,
"^(?!.*
\\
.(js|jsx|ts|tsx|css|json)$)"
:
"<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns"
:
[
"[/
\\\\
]node_modules[/
\\\\
].+
\\
.(js|jsx|ts|tsx)$"
,
"^.+
\\
.module
\\
.(css|sass|scss)$"
],
"modulePaths"
:
[],
"moduleNameMapper"
:
{
"^react-native$"
:
"react-native-web"
,
"^.+
\\
.module
\\
.(css|sass|scss)$"
:
"identity-obj-proxy"
},
"moduleFileExtensions"
:
[
"web.js"
,
"js"
,
"web.ts"
,
"ts"
,
"web.tsx"
,
"tsx"
,
"json"
,
"web.jsx"
,
"jsx"
,
"node"
],
"watchPlugins"
:
[
"jest-watch-typeahead/filename"
,
"jest-watch-typeahead/testname"
]
},
"babel"
:
{
"presets"
:
[
"react-app"
]
}
}
src/App.css
View file @
2f67b89
.App
{
text-align
:
center
;
}
.App-logo
{
.App
.App-logo
{
height
:
40vmin
;
}
.App-header
{
.App
.App-header
{
background-color
:
#282c34
;
min-height
:
100vh
;
display
:
flex
;
...
...
@@ -16,7 +14,6 @@
font-size
:
calc
(
10px
+
2vmin
);
color
:
white
;
}
.App-link
{
.App
.App-link
{
color
:
#09d3ac
;
}
src/App.js
View file @
2f67b89
import
React
from
'react'
;
import
logo
from
'./logo.svg'
;
import
'./App.
c
ss'
;
import
'./App.
le
ss'
;
import
{
Button
}
from
'antd'
;
function
App
()
{
return
(
<
div
className
=
"App"
>
<
Button
type
=
"primary"
>
Primary
<
/Button
>
<
header
className
=
"App-header"
>
<
img
src
=
{
logo
}
className
=
"App-logo"
alt
=
"logo"
/>
<
p
>
...
...
src/App.less
0 → 100644
View file @
2f67b89
.App {
text-align: center;
.App-logo {
height: 40vmin;
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #09d3ac;
}
}
yarn.lock
View file @
2f67b89
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment