IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> angular9.0配置webpack将px转为rem -> 正文阅读

[JavaScript知识库]angular9.0配置webpack将px转为rem

项目中碰到angular的px转rem,查阅资料仍走了弯路,特此记录

我px转rem用到的插件是postcss-pxtorem

首先需要安装:
1.custom-webpack 这里一定要注意自定义的webpack要与angular-cli版本相对应,我项目angular-cli版本为9.1.12,所以我这边webpack用9.1.0

npm i -D @angular-buliders/custom-webpack@9.1.0

2.postcss postcss相当于一个平台,提供一个解析器,用以解析一些css插件

npm i postcss --save-dev

3.postcss-pxtorem

npm i postcss-pxtorem

4.postcss-loader 安装loader的时候注意与项目已安装的插件版本不要相差过大

npm i postcss-loader@4.0.0

5.node-sass 项目中用的是scss 所以要装sass和对应的loader 这个也要注意版本对应,
如果项目中用到的是less,就装less

npm i node-sass@4.14.0 --save-dev

6.sass-loader

npm i sass-loader@9.0.0 --save-dev

7.css-loader

npm i css-loader --save-dev

以上,就是所有需要安装的东西了,需要注意几个问题:
版本对应问题一定要注意,我装的时候吃了不少亏;
我装sass的时候用npm安装时报错缺少Python2的环境,我又去装这个,后来发现使用cnpm安装就可以了,也没有报错.完美

接下来需要整以下几个地方:
1.在项目根目录创建 extra-webpack.config.js文件 (和angular.json 同级)

module.exports = {
    module: {
      rules: [{
        test: /\.(css|sass)$/,  //less就是/\.less$/   或者皆有 /\.(css|less|sass)$/
        use: [
          'postcss-loader',
          'sass-loader',
        ]
      }]
    }
  };

2.在angular.json 文件中个更改配置 需要替换两处,添加一处

"architect": {
 ...
 "build": {
   "builder": "@angular-builders/custom-webpack:browser",  //这里进行替换,替换为custom-webpack
   "options": {
     // 这里进行添加"customWebpackConfig"
     "customWebpackConfig": {
        "path": "./extra-webpack.config.js"
     },
     ...
   }
 },
  "serve": {
   "builder": "@angular-builders/custom-webpack:dev-server", //这里进行替换,替换为custom-webpack
   "options": {
     "browserTarget": "my-project:build"
   }
 }

3.在根目录创建postcss.config.js

module.exports = {  
    plugins: {  
      'autoprefixer': {browsers: 'last 5 version'}  
    },
    plugins: [
        require('postcss-pxtorem')({
          rootValue: 192.0, //类似px2rem中的remUnit参数  设计图尺寸width/10
          unitPrecision: 6, //  转换成rem后保留的小数点位数
          propList: ['*'],  //转换哪些px
          selectorBlackList: ['.xxx-width'], // 有关px的样式将不被转换,这里也支持正则写法
          replace: true,
          mediaQuery: false,
          exclude: /antd/i // 排除antd文件里面的rem 转换
          minPixelValue: 2, // 所有小于2px的样式都不被转换
        }),
        require("autoprefixer")() // 自动补全 moz ms webkit
      ]  
  } 

4.在index.html文件中添加

 (function() {
      document.body.style.fontSize = "14px";
      const setRem = () => {
        let vw = document.getElementsByTagName("html")[0].offsetWidth;
        document.documentElement.style.fontSize = vw /10 + "px";  // 这个fontSize根据项目情况自写
      };
      setRem();
      window.onresize = setRem;
    })();

到此已经全部配置好了
所用到的版本:angular-cli — 9.1.12
custom-webpack — 9.1.0

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:22:20  更:2021-09-23 11:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 1:43:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码