我正在使用带有ReactJS的webpack,并尝试在npm安装后使用normalize.css(https://necolas.github.io/normalize.css/)。
在安装npm之后是否立即应用normalize.css?如果我想,我将如何编辑?
提前感谢您,一定会投票并接受回答
答案 0 :(得分:54)
您可以通过以下方式使用npm安装的normalize.css
与React:
import React from 'react';
import ReactDOM from 'react-dom';
import 'normalize.css'; // Note this
const root = document.getElementById('root');
ReactDOM.render(<h1>Hello, World!</h1>, root);
结果将是:
请注意,文本已由normalize.css
设置样式。
要使其正常工作,您需要类似于以下设置的内容:
1)将上面的Javascript添加到index.js
2)将normalize.css
(及朋友)添加到package.json
:
{
"dependencies": {
"normalize.css": "^5.0.0",
"react": "^16.3.2",
"react-dom": "^16.3.2"
},
"devDependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"css-loader": "^0.28.11",
"style-loader": "^0.21.0",
"webpack-dev-server": "^3.1.4",
"webpack": "^4.8.3"
}
}
3)在webpack.config.js
中使用正确的加载器:
module.exports = {
mode: 'development',
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
options: { presets: ['env', 'react'] }
},
{
test: /\.css$/,
use: [{ loader: 'style-loader' }, { loader: 'css-loader' }]
}
]
}
};
4)添加index.html
文件以查看结果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="root"></div>
<script src="main.js"></script>
</body>
</html>
4)安装一切
npm install
5)启动Webpack devserver:
./node_modules/.bin/webpack-dev-server --open
注意:我使用5.0.0
版本normalize.css
。如果使用版本6.0.0
或更高版本,则字体将不同。所有见解的规则都已从该版本的normalize.css
中删除。
更新17/5/2018:已更新以使用Webpack 4和React 16.
答案 1 :(得分:3)
添加:如果您使用的是WebPack 4,并且无法导入normalize.less,请尝试normalize.css。
@import "../node_modules/normalize.css/normalize.css";
我的规则:
module: {
rules: [{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader,
"css-loader"
]
},
{
test: /\.less$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"less-loader"
]
}
]
};
答案 2 :(得分:0)
在 index.css 中:
@import "~normalize.css/normalize.css";
答案 3 :(得分:-1)
import
或require
后webpack
将包含module: {
rules: [ // from 'loaders' to 'rules'
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
{
test: /\.sass$/,
exclude: /node_modules/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: ['style-loader','sass-loader']
})
}
]
}
除非您将其设置为exclude
。例如:
注意:我正在使用webpack 2
// public/assets/style.scss
@import 'substyle1';
@import 'substyle1';
body {
background-color: red;
}
// src/index.js -> entry file
import '../public/assets/style.scss';
// Webpack will know that you are importing your SCSS / SASS file
derbyClient.jar
属性会处理这个问题。
示例:
derby.jar
希望这会有所帮助。
答案 4 :(得分:-6)
首先,从GitHub安装或下载normalize.css。我建议下载它。然后,有两种主要方法可以使用它。
方法1:使用normalize.css作为您自己项目基础CSS的起点,自定义值以符合设计要求。
方法2:包括不变的normalize.css并在其上构建,如果需要,稍后在CSS中覆盖默认值。
即将这些下载的文件放入项目文件夹并通过链接标记
添加链接link rel =&#34; stylesheet&#34;类型=&#34;文本/ CSS&#34; HREF =&#34; normalize.css&#34;
注意href内容应指向存储规范化的文件夹。