[Node] Node.js Webpack和打包过程(二)

简介: [Node] Node.js Webpack和打包过程(二)

4 编写和打包CSS文件

css-loader的使用

Loader 可以用于对 模块的源代码 进行转换


我们可以将css文件也看成一个模块,我们通过import来加载这个模块


在加载这个模块时 webpack其实并不知道如何对其进行加载,必须要指定对应的loader来完成这个功能


我们需要一个什么样的loader?


对于加载css文件来说 我们需要一个可以读取css文件的loader  


这个loader最常用的是css-loader

CSS-loader的安装

JavaScript
npm install css-loader -D

CSS -loader 的使用方案

如何使用loader来加载css文件呢? 有三种方式:


1 内联方式:


在引入的样式前加上使用的loader,并使用!分割

JavaScript
import "css-loader!../css/style.css"

2 CLI方式(webpack5中不再使用)


已淘汰..


3 配置方式

loader配置方式

我们的webpack.config.js文件中写明配置信息:


module.rules中允许我们配置多个loader(因为我们也会继续使用其他的loader,来完成其他文件的加载)


这种方式可以更好的表示loader的配置 也方便后期的维护 同时也让你对各个loader有一个全局的概览


module.rules的配置如下:


rules属性对应的值是一个数组[Rule]


数组中存放的是一个个Rule,Rule是一个对象,对象中可以设置多个属性


test属性:用于对resource(资源)进行匹配,通常会设置正则表达式


use属性:对应的值是一个数组:[UseEntry]


UseEntry是一个对象 可以通过对象的属性来设置一些其他的属性


loader:必须有一个loader属性,对应的值是一个字符串


options:可选属性 值是一个字符串或对象,值会被传入loader中


query:目前已经使用options来替代;


传递字符串(如:use:['style-loader'])是loader属性的简写方式:(如:use[{loader:'style-loader'}])


loader属性:Rule.use:[{loader}]的简写

认识style-loader

可以通过css-loader来加载css文件了


但是发现 这个css在我们的代码中没有生效(页面没效果)


为什么呢?


因为css-loader只负责将.css文件进行解析,并不会将解析之后的css插入到页面中


如果我们希望再完成 插入 style的操作,我们还需要另外一个loader 就是 style-loader


安装 style-loader

JavaScript
npm install style-loader -D

配置style=loader

在配置文件中 添加 style-loader


注:因为loader的执行顺序是从右向左(或者说 从下到上,从后到前)所以我们需要将style-loader写到css-loader的前面

JavaScript
use:[
    // 注 style-loader写到css-loader的前面
    {loader:"style-loader"}
    {loader:"css-loader"}
]

5 编写和打包LESS文件

如何处理less文件?

在开发中 可能会使用less sass styus的预处理器 来编写css样式 效率更高


那么 如何让我们的环境支持这些预处理器?


首先我们需要确定less sass 等编写的css需要通过工具转换成普通css


如 下面编写的less样式:

CSS
@fontSize: 50px;
@fontColor:blue;
.title {
    font-size: @fontSize;
    color: @fontColor;
}

可以使用less-loader来处理


先使用less工具转换到css 再用style

JavaScript
npm install less-loader -D
JavaScript
{
    test:/\.less$/,
    use:["style-loader","css-loader","less-loader"]
}

6 postcss工具处理CSS

认识PostCSS工具

什么是PostCSS呢?


他是一个通过Js来转换样式的工具


可以帮助我们进行一些CSS的转换和适配 如 自动添加浏览器前缀,css样式的重置


实现这些功能 需要借助于PostCSS对应的插件


如何使用PostCSS呢? 分为两步:


一:查找PostCSS在构建工具中的拓展,如webpack和postcss-loader;


二:选择可以添加你需要的PostCSS相关的插件

Postcss-loader

可以借助于构建工具:


在webpack中使用postcss就是使用postcss-loader来处理


我们来安装postcss-loader:

JavaScript
npm install postcss-loader -D

我们修改加载css的loader:(配置文件过多,给出一部分了)


注:因为postcss需要有对应的插件才会起效果.所以我们需要配置它的plugin

JavaScript
{
    loader:"postcss-loader",
    options:{
        postcssOptions:{
            plugins:[
                require('abtoprefixer')
            ]
        }
    }
}

单独的postcss配置文件

因为我们需要添加前缀,所以要安装autoprefixer;


我们可以将这些配置信息放到一个单独的文件中进行管理


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

JavaScript
module.exports = {
    plugins:[
        // require("autoprefixer")
        "autoprefixer"
    ],
}

postcss-preset-env

preset => 预设


事实上,在配置postcss-loader时 我们配置插件并不需要使用autpprefixer


我们可以使用另外一个插件:postcss-preset-env


postcss-preset-env也是一个postcss的插件


它可以帮助我们将一些现代的CSS特性,转成大多数浏览器认识的CSS 且会根据目标浏览器或者运行时环境添加所需的polyfill


也包括会自动帮助我们添加autoprefixer(相当于已经内置了autoprefixer)


首先 我们需要安装它

JavaScript
npm install postcss-preset-env -D

之后 我们直接修改之前的autoorefixer即可:

JavaScript
plugins:[
    "postcss-preset-env"
],
相关文章
|
1月前
|
缓存 JavaScript 前端开发
js开发:请解释什么是Webpack,以及它在项目中的作用。
Webpack是开源的JavaScript模块打包器,用于前端项目构建,整合并优化JavaScript、CSS、图片等资源。它实现模块打包、代码分割以提升加载速度,同时进行资源优化和缓存。借助插件机制扩展功能,并支持热更新,加速开发流程。
20 4
|
2月前
|
JSON JavaScript 前端开发
JS服务端技术—Node.js知识点
本篇文章是我开始系统学习Node.js的一些笔记。如果文中阐述不全或不对的,多多交流。
62 0
JS服务端技术—Node.js知识点
|
3月前
|
JavaScript
node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:
node下的two.js调用one.js出现无法编译问题 Cannot find module ‘c:
47 0
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
77 0
|
19天前
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
报错/ ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2)怎么解决?
|
3天前
|
缓存 JavaScript 前端开发
js开发:请解释什么是Webpack,以及它在项目中的作用。
Webpack是开源的JavaScript模块打包器,用于前端项目构建,整合并优化JavaScript、CSS、图片等资源。它实现模块打包、代码分割以提升加载速度,同时进行资源优化和缓存。Webpack的插件机制可扩展功能,支持热更新以加速开发流程。
13 2
|
1月前
|
Web App开发 JavaScript 前端开发
js开发:请解释什么是Node.js,以及它的应用场景。
Node.js是基于V8的JavaScript运行时,用于服务器端编程。它的事件驱动、非阻塞I/O模型使其在高并发实时应用中表现出色,如Web服务器、实时聊天、API服务、微服务、工具和跨平台桌面应用(使用Electron)。适用于高性能和实时需求场景。
18 4
|
1月前
|
JavaScript 前端开发 Serverless
函数计算新功能— 支持 Node.js 18 、Node.js 20 运行时
从2024年2月起,函数计算正式发布 Node.js 18 运行时和 Nodejs.20 运行时,函数计算2.0和函数计算3.0都支持新的运行时,目前新运行时处在公测状态,欢迎大家来体验。
465 0
|
2月前
|
Web App开发 JavaScript 前端开发
构建现代Web应用:Vue.js与Node.js的完美结合
在当今快速发展的Web技术领域,选择合适的技术栈对于开发高效、响应迅速的现代Web应用至关重要。本文深入探讨了Vue.js和Node.js结合使用的优势,以及如何利用这两种技术构建一个完整的前后端分离的Web应用。不同于传统的摘要,我们将通过一个实际的项目示例,展示从搭建项目架构到实现具体功能的整个过程,着重介绍了Vue.js在构建用户友好的界面方面的能力,以及Node.js在处理服务器端逻辑和数据库交互中的高效性。通过本文,读者不仅能够理解Vue.js与Node.js各自的特点,还能学习到如何将这两种技术融合应用,以提升Web应用的开发效率和用户体验。
|
2月前
|
监控 JavaScript 前端开发
Node.js:JavaScript世界的全能工具
Node.js:JavaScript世界的全能工具
78 0