分割线-------------------------------------------------------start----------------------------------------------
使用Less语法,不暴露webpack文件,并改写webpack
一般是运行npm run eject 将webpack的配置暴露出来,再改写webpack配置文件。
改写webpack配置,使用Less语法:
1、使用less,首先得下载less、less-loader、css-loader、style-loader
npm install less less-loader css-loader style-loader —save-dev
2、不暴露webpack文件的方法:使用react-app-rewired
customize-cra插件是自定义react-app-rewired核心功能的配置
react-app-rewired:https://github.com/timarney/react-app-rewired
customize-cra:https://github.com/arackaf/customize-cra#available-plugins
npm install react-app-rewired --save-dev
npm install customize-cra --save-dev
新建config-overrides.js文件
/* config-overrides.js */
const { override, addLessLoader } = require("customize-cra");module.exports = override(addLessLoader({javascriptEnabled: true,}));
修改package.json文件
/* package.json */
"scripts": {- "start": "react-scripts start",+ "start": "react-app-rewired start",- "build": "react-scripts build",+ "build": "react-app-rewired build",- "test": "react-scripts test --env=jsdom",+ "test": "react-app-rewired test --env=jsdom","eject": "react-scripts eject"}
文件引入.less文件即可生效。
分割线-----------------------------------------------end---------------------------------
使用 create-react-app 脚手架创建项目后,默认是不支持 less 的。所以我们需要手动添加。
(如果想使用scss可以不暴露文件,往下看)
第一步 暴露webpack配置文件
使用 create-react-app 创建的项目,默认情况下是看不到 webpack 相关的配置文件,我们需要给它暴露出来,使用下面命令即可:
npm run eject
这样就可以修改 webpack 相关配置了。
第二步 添加less
npm add less less-loader
第三步 修改webpack配置文件
我们需求修改 webpack.config.dev.js 和 webpack.config-prod.js 这两个配置文件
- test: /.css$/ 改为 /.(css|less)$/
- test: /.css$/ 的 use 数组配置增加 less-loader
{test: /\.(css|less)$/,use: [require.resolve('style-loader'),{loader: require.resolve('css-loader'),options: {importLoaders: 1,},},{loader: require.resolve('postcss-loader'),options: {// Necessary for external CSS imports to work// https://github.com/facebookincubator/create-react-app/issues/2677ident: 'postcss',plugins: () => [require('postcss-flexbugs-fixes'),autoprefixer({browsers: ['>1%','last 4 versions','Firefox ESR','not ie < 9', // React doesn't support IE8 anyway],flexbox: 'no-2009',}),],},},{loader: require.resolve('less-loader') // compiles Less to CSS}],
},
重启项目,引入less就可以了。。
引用scss 不用暴露文件
create-react-app demo
需要安装 node-sass;
npm install node-sass
然后引入.scss后缀的文件就可以使用啦。
.App {text-align: center
}
如果想使用.sass的文件记得不要加{}哦
.Apptext-align: center