分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

(12/24) css进阶:sass文件的打包和分离

发布时间:2023-09-06 02:26责任编辑:赖小花关键词:暂无标签

1.安装sass打包的loader

这里需要 在项目目录下用npm安装两个包。node-sass和sass-loader,(也可以使用cnpm安装)

因为sass-loader依赖于node-sass,所以需要先安装node-sass

1.1 node-sass

npm ?install --save-dev node-sass

1.2 sass-loader

npm install --save-dev sass-loader

注意:在用npm安装时,这个loader很容易安装失败,最好使用cnpm来进行安装。如果你安装一直报错,最好是把node_modules文件夹删除后,再重新安装。

2.配置可直接进行SASS文件分离的loader

若不需要sass文件分离,参考上一节的配置方式

const extractTextPlugin = require("extract-text-webpack-plugin");
{ ???????????test: /\.scss$/, ???????????use: extractTextPlugin.extract({ ???????????????use: [{ ???????????????????loader: "css-loader" ???????????????}, { ???????????????????loader: "sass-loader" ???????????????}], ???????????????// use style-loader in development ???????????????fallback: "style-loader" ???????????}) }
extract-text-webpack-plugin分离插件的相关使用。

3.新建文件

3.1 scss文件建立

注意这里建立的文件格式是scss格式的。

在src/css目录下新建three.scss文件,内容为:

$nav-color: #FFF;#sass_part { ?width: 100px; ?height:100px; ?background-color: $nav-color; ?color:#000 ; ?margin: 50px;}

 3.2 添加标签

在src目录下的index.html文件中新增,如下:

 <div id="sass_part">sass</div>

4. 在src目录下的entry.js中引入scss文件

import less from ‘./css/three.scss‘

5.打包

使用webpack命令进行打包。

webpack

结果打包到了index.css中。

6.启动服务

使用命令npm run server 启动服务。

npm ?run server

 效果为:

相关源代码:

webpack.config.js:

const path = require(‘path‘);const uglify = require(‘uglifyjs-webpack-plugin‘);const htmlPlugin= require(‘html-webpack-plugin‘);const extractTextPlugin = require("extract-text-webpack-plugin");var website ={ ???publicPath:"http://localhost:1818/"}module.exports={ ???//入口文件的配置项 ???entry:{ ???????entry:‘./src/entry.js‘, ???????//这里我们又引入了一个入口文件 ???????entry2:‘./src/entry2.js‘, ???}, ???//出口文件的配置项 ???output:{ ???????//输出的路径,用了Node语法 ???????path:path.resolve(__dirname,‘dist‘), ???????//输出的文件名称 ???????filename:‘[name].js‘, ???????publicPath: website.publicPath ???}, ???//模块:例如解读CSS,图片如何转换,压缩 ???module:{ ???????rules: [ ???????????//针对.css的处理配置 ???????????{ ???????????????test: /\.css$/, ???????????????use: extractTextPlugin.extract({ ???????????????????fallback: "style-loader", ???????????????????use: "css-loader" ???????????????}) ???????????}, ???????????//针对.less的处理配置 ???????????{ ???????????????test: /\.less$/, ???????????????use: extractTextPlugin.extract({ ???????????????????use: [{ ???????????????????????loader: "css-loader" ???????????????????}, { ???????????????????????loader: "less-loader" ???????????????????}], ???????????????????// use style-loader in development ???????????????????fallback: "style-loader"//extract默认行为先使用css-loader编译css,如果一切顺利的话,结束之后把css导出到规定的文件去。但是如果编译过程中出现了错误,则继续使用vue-style-loader处理css ???????????????}) ???????????}, ???????????//针对scss的处理配置 ???????????{ ???????????????test: /\.scss$/, ???????????????use: extractTextPlugin.extract({ ???????????????????use: [{ ???????????????????????loader: "css-loader" ???????????????????}, { ???????????????????????loader: "sass-loader" ???????????????????}], ???????????????????// use style-loader in development ???????????????????fallback: "style-loader" ???????????????}) ???????????}, ???????????{ ???????????????test:/\.(png|jpg|gif)/, ???????????????use:[{ ???????????????????loader:‘url-loader‘, ???????????????????options:{ ???????????????????????limit:50, ???????????????????????outputPath:‘images/‘//图片打包到images下 ???????????????????} ???????????????} ???????????????] ???????????}, ???????????{ ???????????????test: /\.(htm|html)$/i, ???????????????use:[ ‘html-withimg-loader‘] ???????????} ???????] ???}, ???//插件,用于生产模版和各项功能 ???plugins:[ ???????// new uglify(), ???????new htmlPlugin({ ???????????minify:{ ???????????????removeAttributeQuotes:true ???????????}, ???????????hash:true, ???????????template:‘./src/index.html‘ ???????}), ???????new extractTextPlugin("css/index.css") ???], ???//配置webpack开发服务功能 ???devServer:{ ???????contentBase:path.resolve(__dirname,‘dist‘), //绝对路径 ???????host:‘localhost‘, ???????compress:true, ???????port:1818 ???}}
View Code

src/index.html:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>webpack</title></head><body><div> ???<div id="sass_part">sass</div> ???<div id="less_part">less</div> ???<img src="images/wfbin.png"/></div><div id="img"></div><div id="title"></div></body></html>
View Code

src/css/three.scss:

$nav-color: #FFF;#sass_part { ?width: 100px; ?height:100px; ?background-color: $nav-color; ?color:#000 ; ?margin: 50px;}
View Code

src/entry.js(入口文件):

import css from ‘./css/index.css‘import less from ‘./css/black.less‘import less from ‘./css/three.scss‘document.getElementById(‘title‘).innerHTML=‘Hello Webpack‘;
View Code

(12/24) css进阶:sass文件的打包和分离

原文地址:https://www.cnblogs.com/wfaceboss/p/10124229.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved