【webpack】【小程序】小程序使用sass,使用webpack单独处理sass到wxss

微信小程序使用scss编译wxss文件的配置步骤 微信小程序使用SCSS编译WXSS文件的配置步骤 阅读详情

使用程序wxss书写样式不是很爽,想用scss又不会处理 可以使用webpack等工具来实现这种效果 或者使用vscode插件 Easy Sass。

需求

把每个页面文件夹里面的scss/css文件编译成wxss供小程序使用其他文件不做处理:

  1. 使用工具先获取到所有需要处理的scss/css文件以及路径;
  2. 通过scss-loader编译成css;
  3. 通过插件将编译后的css文件根据获取的路径输出到相应的文件夹并改后缀为.wxss;

直接贴代码

对webpack不熟悉的同学可以了解下webpack的入门

目录结构

  • src
    • 小程序项目
  • package.json
  • webpack.config.js
// package.json
{
	"name": "sass-wxss",
	"version": "1.0.0",
	"description": "",
	"main": "webpack.config.js",
	"scripts": {
		"build": "webpack --config webpack.config.js"
	},
	"keywords": [],
	"author": "",
	"license": "ISC",
	"devDependencies": {
		"css-loader": "^1.0.1",
		"mini-css-extract-plugin": "^0.4.5",
		"node-sass": "^4.11.0",
		"sass-loader": "^7.1.0",
		"webpack": "^4.29.6",
		"webpack-cli": "^3.3.0"
	},
	"dependencies": {
		"globby": "^9.2.0",
		"webpack-fix-style-only-entries": "^0.2.1"
	}
}
// webpack.config.js
// 单独打包样式文件
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
//删除多余js
const FixStyleOnlyEntriesPlugin = require('webpack-fix-style-only-entries');
const path = require('path');
const glob = require('globby');
// CSS入口配置
const CSS_PATH = {
	pattern: [ './src/**/*.scss', './src/**/*.css' ],
	src: path.join(__dirname, 'src')
};

// 遍历所有需要打包的SCSS/CSS文件路径
let getCSSEntries = (config) => {
	let fileList = glob.sync(config.pattern);
	return fileList.reduce((previous, current) => {
		let filePath = path.parse(path.relative(config.src, current));
		let withoutSuffix = path.join(filePath.dir, filePath.name);
		previous[withoutSuffix] = path.resolve(__dirname, current);
		return previous;
	}, {});
};

let config = {
	entry: getCSSEntries(CSS_PATH),
	output: {
		path: __dirname
	},
	module: {
		rules: [
			{
				test: /\.(scss|sass|css)$/,
				use: [
					// 需要用到的 loader
					MiniCssExtractPlugin.loader,
					'css-loader',
					'sass-loader'
				]
			}
		]
	},
	plugins: [
		new FixStyleOnlyEntriesPlugin(),
		new MiniCssExtractPlugin({
			filename: '/src/[name].wxss'
		})
	],
	resolve: {
		extensions: [ '.scss' ]
	}
};

module.exports = config;

使用webpack步骤

直接输入先按照上面的目录结构配置好之后 输入指令(前提有node环境)

npm i --save

npm run build

再查看src目录下面的小程序项目会惊奇的发现 每一个页面文件里面的scss文件都会多出来一个.wxss文件 试试吧!

使用vscode插件 Easy Sass 更容易实现

在vscode插件中搜索Easy Sass 并安装

Alt

安装好之后在vscode 设置(User Settings)里面配置

// User Settings
{
    "easysass.formats": [
        {
        "format": "expanded",
        "extension": ".wxss"
        }
    ],
    "easysass.targetDir": ""
}
webpack工程化小程序开发 webpack编译打包构建小程序webpack工程化小程序开发1、新建项目文件(如:wx-mini)2、创建package.json文件3、安装项目依赖包(或插件包)4、项目目录构建5、在项目个目录下,新建 .babelrc 文件,用来将es6转化为es56、执行 npm run dev 或 yarn dev (如果有安装yarn),生成dist文件,将整个dist文件放入微信开发者工具即可7... 阅读详情

相关推荐

微信小程序 WXSS 背景图 4 种方案深度对比:网络图片 vs Base64 vs Image 标签 vs 内联样式

本文深度对比微信小程序 WXSS 背景图的四种实现方案:网络图片、Base64 编码、Image 标签和内联样式,分析其技术原理、性能表现及适用场景。针对常见的`渲染层网络层错误`问题,提供详细的解决方案和优化技巧,帮助开发者根据项目需求选择最佳实践,提升小程序开发效率与用户体验。

weixin_33738982的博客 550

使用vscode让scss或less,转换成wxss

1、scss请先下载Easy Sass,less下载Easy Less,我自己是用的scss,所以从图中可以看到我已经安装Easy Sass了。 2、要下载直接搜索框搜索,找到对应的插件就可以了。 3、打开设置文件,可能有些小伙伴不知道怎么打开,我这里说一下(快捷键ctrl+shift+p可以打开搜索,输入setting,点击Preferences:Open Settins(JSON)就可以了) 4、编辑以下配置,这里方便小伙伴们复制,粘贴我把配置放到下面。 "easysass.formats": [

辉生活-记录程序生活的点滴。 2808

小程序开发工具自定义预处理:Less_Sass支持

本文旨在解决小程序原生开发环境中缺乏CSS预处理器支持的问题,详细介绍如何通过自定义构建流程集成Less/Sass等流行CSS预处理器。内容涵盖从基础配置到高级定制的完整解决方案。介绍CSS预处理器的核心概念分析小程序开发工具的构建机制分步实现Less/Sass支持提供实际项目中的最佳实践探讨未来发展趋势CSS预处理器:一种脚本语言,扩展了CSS功能,通过编译器转换为标准CSSLess:一种流行的CSS预处理器,支持变量、嵌套、混合等特性Sass。

小程序开发 1209

小程序 用ruby把scss文件转为wxss文件

目录 一、需要的工具: 二、配置webstorm 三、导入项目,开始编译。 四、编译单个scss文件 在小程序项目开发中,在WXSS中会遇到图片不能通过 background:url() 的方式引入,啷个办,用scss去编写,编写好了之后通过ruby把scss文件转为wxss文件。具体操作如下: 一、需要的工具: webstorm 安装好ruby: 下载包 百度网盘链接:h...

青蛙king的博客 721

小程序开发环境搭建:Webpack自定义配置

小程序传统开发模式的痛点分析Webpack在小程序工程化中的核心价值自定义配置方案的完整实现路径生产环境优化策略与调试技巧覆盖微信小程序、支付宝小程序等多端场景,支持TypeScript、Sass等现代开发语法。fill:#333;color:#333;color:#333;fill:none;背景介绍核心概念配置原理项目实战优化策略工具链总结展望Webpack:现代JavaScript应用程序的静态模块打包工具Loader:文件转换器,用于处理非JavaScript资源。

小程序开发 930

微信小程序自定义预处理命令-sass转wxss

微信小程序自定义预处理命令-sass转wxss。使用微信开发者工具的自定义预处理命令,输入此文件名,并将此文件放入小程序根目录,然后此命令会查找小程序的pages下的scss和app.scss文件,并将其编译为wxss文件。更多信息请查看我编写的文章:如何在微信小程序中使用sass来编写wxss代码

webpack编译微信小程序

微信小程序开发目前主要还是依赖小程序原生开发者工具,但开发者工具目前还不支持常用的less、sass样式编译,以及环境变量配置等功能。使用webpack就可以弥补这些问题。

不求甚解的博客 6345

微信小程序-使用 webpack, babel, scss 开发的微信小程序项目脚手架

wxapp-boilerplate 使用 webpack, babel, scss 开发的微信小程序项目脚手架 功能 支持引用 node_modules 模块 支持通过配置 alias 来避免 ../../../ 之类的模块引用 通过 babel 支持更丰富的 ES6 兼容,包括 async/await 内置 promise 和 lodash(lodash 按需引入相应模块,不会全部引入) 使用 scss 编写 .wxss 文件,内置了一些有用的 mixins 和 extends 提供 __DEV__ 和 process.env.NODE_ENV 全局常量辅助开发 通过命令行快速创建微信小程序页面 支持在 production 环境下压缩代码 开始使用 确保安装了 Node.js (>= v6.0) 和 yarn git clone 此项目 通过命令行工具 cd 到这个目录,执行 yarn 安装依赖模块 执行 yarn start 开始开发 通过微信开发者工具,添加 dist 目录到项目上 内置命令 yarn start 启动 webpack 开发项目,能监听文件变化自动重新

微信小程序使用sass编写样式转换成wxss

计算机当前用户目录]/.vscode/extensions/spook.easysass-0.0.6。

xxx 902

less/sass 文件编译成微信小程序wxss文件

在做demo小示例的过程中,我发现了一个极为让人为难的事儿:如何让 less/sass 文件转成小程序的 wxss 文件。 对于基本不使用原生 css ,而习惯编写 less 的我,这个事儿让我的样式编写相当的吃力。 在尝试配置 koala (一个可以编译less/sass的工具)以及搜索各种资料后,终于找到了一个可行的方法。我以less 为示例,和大家分享下。 sass 也是可行的。 环境要求: webstrom 编辑器 nodejs 环境 具体步骤 1.使用 nodejs 命令安装 less。 在 nodejs 命令窗口输入: npm install less -g ,然后回车安装。如下图

【电路设计实战】BUCK降压电路:从原理到PCB布局的降噪与效率优化

本文深入剖析了BUCK降压电路的工作原理,并针对其固有的开关噪声问题,提供了从核心元件选型到PCB布局的全面优化方案。文章重点探讨了电感、电容等关键元件的选型要点,强调了低ESR电容和肖特基二极管的重要性,并详细阐述了如何通过最小化功率回路、保护敏感信号线等PCB布局实战技巧,有效抑制噪声、提升效率与稳定性。

weixin_29304021的博客 221

gulp的简单使用,如何配置一个可以用html+less/sass写微信小程序/支付宝小程序的项目

    最近看到群里好多人都是讨论关于gulp的配置的问题,今天就用实例分享一下gulp的简单使用方法.     看群里有人粘出来的代码,里面用到的插件种类繁多,但是看它执行任务的时候,其实需要的仅仅的压缩图片,编译less文件,所以,建议大家在创建之前,首先要明白自己的需求.我们拿今天的实例来说.    我们知道微信小程序的页面是由,.wxml,.wxss.json,.js.这四部分组成,其...

给你一片光明 1425

单晶塑性abaqus-umat自学

单晶塑性abaqus-umat 摘要1. 简介2. 单晶弹塑性本构模型回顾2.1运动学 本文以翻译黄永刚老师的umat文章为主,这个颜色的为个人的理解。 摘要 包含单晶塑性的abaqus用户材料子程序。本文回顾有限元形式的单晶弹塑性和黏弹塑性,包含小变形理论,以及严格的有限变形和有限旋转理论。单晶的非弹性变形由于晶体滑移,假定遵从Schmid准则。提出多种多样的分切应力与剪切变形的自硬化和潜硬化关系,并且包含在子程序内。 1. 简介   有限元程序ABAQUS已经广泛应用在固体的变形与应力分析。除了自身大量

Niklas4088的博客 1万+

微信小程序配置和使用sass

在项目中找到project.config.json文件,找到setting属性,配置的是sass预处理语言,对应的文件为.scss。

XiaoNengShou33的博客 3541

Aras Innovator生命周期图实战:从配置到权限管理的全流程解析

本文详细解析了Aras Innovator生命周期图的全流程配置与权限管理,从基础概念到实战应用,涵盖状态设置、路径配置、权限控制等核心功能。通过实际案例和代码示例,帮助用户掌握如何高效管理数据生命周期,提升业务流程的规范性和效率。

ee345的博客 168

Qt多线程实战:如何优雅地处理Modbus设备通信中的线程安全问题

本文深入探讨了在Qt框架下实现Modbus设备通信时的多线程安全问题,提供了优雅的解决方案。通过生产者-消费者模型、任务队列与锁机制等设计模式,有效解决了界面卡顿、数据包错乱等问题。文章还详细介绍了对象生命周期管理、信号槽连接类型选择等关键实现细节,帮助开发者构建稳定可靠的Modbus通信模块。

weixin_30897233的博客 484

WePY 小程序 Sass 编译器 @wepy/compiler-sass:安装、配置与模块导入解析原理

`@wepy/compiler-sass` 是 WePY 小程序组件化开发框架的官方样式编译器,负责把 `.scss` / `.sass` 源文件编译为微信小程序可运行的 WXSS。本篇文章围绕该编译器的安装方式、`wepy.config.js` 配置写法与完整参数说明展开,并结合仓库源码讲解它在 `@import` 解析、缩进语法识别(indented syntax)与文件别名(alias)处理

gitblog_00019的博客 329

健康保险费用预测:可解释机器学习在精算建模中的实战落地

健康保险费用预测是医疗AI与保险科技交叉领域的核心任务,本质是基于临床变量与社会因素对个体医疗支出进行风险量化。其技术原理需兼顾统计建模能力与监管可解释性,XGBoost+SHAP组合因支持特征归因、边际效应分析和临床可干预推演,成为保险精算场景的主流选择。该技术显著提升保费定价精度、降低偿付风险,并支撑DRG费用预警、团险核保辅助及再保险尾部风险评估等关键应用。本文聚焦真实产线中的时间序列验证、临床分层特征工程与监管红线指标(如Bias@90th、Calibration Slope),深入解析如何让模型不

weixin_33702545的博客 306

小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...

本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工具链的支持。 多端框架(Mpvue, Taro)崛起,但限制了原生小程序的能力。 我司在使用一段时间多端开发框架后,决定回退到原生方案,除了多端框架对原生能力有所限制外,最重要的是,我们只需要一个...

weixin_33859665的博客 1294

手把手教你用u-center配置ublox GPS模块:从波特率到报文频率全流程

本文提供了一份详细的u-center软件配置ublox GPS模块的完整指南。从硬件连接到软件设置,逐步讲解了如何探测并设置正确的波特率、选择与启用关键的NMEA和UBX报文,以及配置输出频率。文章特别强调了配置固化的重要性,并分享了使用UBX协议进行高效数据解析等高级技巧,帮助开发者快速上手并优化GPS模块性能。

weixin_28285943的博客 897

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1559

小程序工程化系列(一):文件依赖分析

一、前言去年(19年10月)在某技术沙龙上分享了《小程序工程化探索》后,陆续有网友联系到我询问一些实现方面的细节,虽然常年顶着黑眼圈修着“福报”,但还是决定抽出时间写一个小程序工程化系列...

LuckyWinty的博客 2351

倍福--RS232自由口实现

RS232/485通信协议是在现场中常用到的,比如触摸屏、温控模块等设备控控制器做通信,会常用到此类协议,本文介绍RS232/485自由口通信的实现,并用PC调试助手进行测试。 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制器软件 3 硬件连接 3 2.1. PC COM介绍 3 2.2. RS232/RS485连接 3 3.2.1. N030…………. 4 3.2.2. N031…………. 4 2.3. 实际线路连接 5 PLC程序 7 3

weixin_41883890的博客 3284

小程序工程化实战 + webpack

基于webpack5,支持es6、Promise、async/await、scss、less,支持云开发,实现工程化打包小程序项目的脚手架,可直接应用到生产环境。

逆水行舟,不进则退 932

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

application.properties引用其他文件_小程序工程化系列(一):文件依赖分析

一、前言去年(19年10月)在某技术沙龙上分享了《小程序工程化探索》后,陆续有网友联系到我询问一些实现方面的细节,虽然常年顶着黑眼圈修着“福报”,但还是决定抽出时间写一个小程序工程化系列,一是希望能帮到部分同学,二是希望能提升自己的总结与表达能力,由于是一个系列,所以每篇文章会尽量聚焦一个点,篇幅不会很长。闲话少述,本篇是小程序工程化系列第一篇,我将会详细介绍如何利用 Webpack 实...

weixin_39638929的博客 580

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 【vue-cli】vue脚手架构建项目引入插件
下一篇: 【代码段】 关于H5滑动穿透问题
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值