首页
学习
活动
专区
圈层
工具
发布

从零开始构建你的 Gulp

本篇博文的内容根据 Introduction to Gulp.js 系列文章 拓展而来,其代码、依赖包及目录结构部分均有所更改,更多详细内容,敬请参考原文及作者 Github 我们在上一篇博文 Gulp 前端自动化构建工具...中,已经对 Gulp 有了初步的了解,我们通过将所有任务写到 gulpfile.js 文件中进行编译,这当然是最直观的方法,但当我们需要执行的任务过多时,gulpfile.js 文件就会变的特别的巨大.../gulp/tasks 目录下的所有任务载入 // gulpfile.js const requireDir = require('require-dir'); requireDir('....图片 生成精灵图的插件有很多,我们在这里选择的是 sprity 插件,反正我折腾了这么多个插件之后,这一个是最友好的,我是在 Windows 7 环境下进行测试的,不管你使用的是哪个精灵图生成插件,都必须要安装图片引擎...gulp.dest(config.dest)) }) 图片 Browsersync browser-sync 插件,其作用是能让浏览器实时、快速响应 HTML、CSS、JS、Sass、Less 等文件更改并自动刷新页面

1.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何为你的微信小程序瘦身?

    众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了。...避免使用本地大图片、大资源文件 请避免在小程序的UI上使用大图片,应该尽可能的通过颜色样式来装点你的小程序 或者,使用小而精致的小图标来点缀 如果实在想用大图片,那请不要将图片放进小程序的本地代码中,应该采用从一个远程...gulp-jsonminify": "^1.0.0", "gulp-less": "^3.3.0", "gulp-load-plugins": "^1.4.0", "gulp-postcss...", "gulp-sourcemaps": "^2.2.1", "gulp-uglify": "^2.0.0", "run-sequence": "^1.2.2" } } gulpfile.js.../src/styles/**']) .pipe($.less()) .pipe($.postcss([ autoprefixer([ 'iOS >= 8',

    92950

    武装你的小程序——开发流程指南

    src 为开发目录 dist(开启编译后可见)为预览/上传目录 .gitignore git上传忽略文件 gulpfile.js 编译配置文件 CHANGELOG.md 版本更新日志 README.md..."gulp": "^3.9.1" "gulp-sass": "^4.0.2" scss编译插件  "gulp-postcss": "^6.4.0" 强大的css处理插件  "gulp-rename":...因此,我们在处理的时候也需要注意区分,变量和函数最好有一个独立的文件目录存放,并且在import的时候,对于变量和函数,是必须交给sass处理的,也就是不能注释掉。...gulp-replace通过正则匹配@import语句将其注释 判断当前@import语句是否存在于变量和函数文件的配置路径中 不存在就注释,存在就跳过 启用gulp-sass编译scss文件, 通过postcss...gulpfile.js ? ? project.config.json ? 开发者工具 ? 以上列举了开发流程中常用的工程化解决方案,再此希望对大家有一个参考作用,如有问题欢迎指正。

    4.2K40

    武装你的小程序——开发流程指南

    src 为开发目录 dist(开启编译后可见)为预览/上传目录 .gitignore git上传忽略文件 gulpfile.js 编译配置文件 CHANGELOG.md 版本更新日志 README.md..."gulp": "^3.9.1" "gulp-sass": "^4.0.2" scss编译插件 "gulp-postcss": "^6.4.0" 强大的css处理插件 "gulp-rename...因此,我们在处理的时候也需要注意区分,变量和函数最好有一个独立的文件目录存放,并且在import的时候,对于变量和函数,是必须交给sass处理的,也就是不能注释掉。...gulp-replace通过正则匹配@import语句将其注释 判断当前@import语句是否存在于变量和函数文件的配置路径中 不存在就注释,存在就跳过 启用gulp-sass编译scss文件, 通过postcss...gulpfile.js ? ? project.config.json ? 开发者工具 ? 以上列举了开发流程中常用的工程化解决方案,再此希望对大家有一个参考作用,如有问题欢迎指正。

    2.5K30

    webpack5基础

    1.为什么需要打包工具 我们在开发时一般使用框架,vue,react,es6模块化,scss等,这样的代码要想在浏览器运行必须转成浏览器识别的js,css才能运行,所以这时候就需要webpack了。...再建立webpack.prod.js,将webpack.dev.js的配置复制到webpack.prod.js 修改webpack.dev.js和webpack.prod.js中的绝对路径,并将mode改为.../config/webpack.prod.js" }, 此时运行程序时使用npm start即可 提取css成单独文件 单独打包生成css,防止闪屏, 安装npm install --save-dev...webpack.prod.js引入 const MiniCssExtractPlugin = require("mini-css-extract-plugin"); 修改配置,将style-loader改为...postcss-loader postcss-preset-env -D 增加配置,在css-loader后面,less-loader前面 { loader: "postcss-loader"

    51120

    微信小程序 折叠屏兼容

    官网寻找解决方案 uni-app宽屏适配指南内容缩放拉伸的处理 这一段中提出了两个策略1.局部拉伸:页面内容划分为固定区域和长宽动态适配区域,固定区域使用固定的px单位约定宽高,长宽适配区域则使用flex自动适配...750 }, }2.单位兼容还有一点官方也提出来了很重要,那就很多时候 会把宽度750rpx 当成100% 使用,这在宽屏的设备上就会有问题, uniapp给了两种解决方案750rpx 改为...100%另一种是配置rpxCalcIncludeWidth,设置某个特定数值不受rpxCalcMaxDeviceWidth约束想要用局部拉伸:页面内容划分为固定区域和长宽动态适配区域”的策略,单位必须用...则在编译时,编译器会自动转换rpx单位为px。...// postcss.config.jsconst path = require('path')module.exports = { parser: 'postcss-comment', plugins

    88810

    放弃webpack,拥抱gulp

    gulp定义是:用自动化构建工具增强你的工作流程,是一种基于任务文件流方式,你可以在前端写一些自动化脚本,或者升级历史传统项目,解放你重复打包,压缩,解压之类的操作。...个人理解gulp是一种命令式编程的体验,更注重构建过程,所有的任务需要你自己手动创建,你会对构建流程会非常清楚,这点不像webpack,webpack就是一个开箱即用的声明式方式,webpack是一个模块化打包工具...搭建一个简单的前端应用 相比较webpack,其实gulp的项目结构更偏向传统的应用,只是我们借助gulp工具解放我们的一些代码压缩、es6编译、打包以及在传统项目中都可以使用less体验。...,所有的自动化工作流操作都牢牢的掌握在自己手上,你可以用gulp写一些自动化脚本,比如,文件上传,打包,压缩,或者改造传统的前端应用。...但是发现中途需要找好多gulp插件,gulp的生态还算可以,3w多个star,生态相对丰富,但是有些插件常年不更新,或者版本更新不支持,比如gulp-image,当你按照官方文档使用最新的包时,不支持esm,你必须降低版本

    1.2K10

    03_Node.js模块化开发

    文件写入 文件写入操作常用于网站运行的过程中,如果程序发生错误,将该错误写入到错误日志中,以便程序员对错误进行处理。...需要安装的第三方包名称为formidable,就可以在C:\code\chapter02根目录下输入命令npm install formidable,并按“Enter”键等待安装成功即可(注意安装的过程必须联网...gulp是一个JavaScript程序,并且它的指令使用的也是JavaScript语言,所以gulp通常是前端开发人员自动化处理日常任务的首选工具。...// gulp first // gulp命令后跟first任务名,表示gulp命令会自动去当前的项目根目录下查找gulpfile.js文件 // 然后在这个文件中再去查找first任务,找到后自动执行...// step 09 // src目录下的default.html和article.html文件的头部代码删除掉,修改为如下代码。 @@include('.

    60010

    前端实现项目中px自动转换rem

    “好事”文章:《掌握微信小程序开发的核心要点:从基础到进阶》文章地址:https://cloud.tencent.com/developer/article/2472716好文介绍:好文通过5个核心要点...,讲解了如何掌握微信小程序开发从基础到进阶。...postcss-pxtorem 插件能够自动分析 CSS 文件中的 px 值,并依据配置的根元素字体大小以及其他相关参数,将 px 值转换为 rem 值,这个转换过程在项目构建时自动完成,开发者无需手动干预每个...,在编写 CSS 样式时正常使用 px 值,在项目构建过程中,postcss-pxtorem 插件就会按照配置自动将相应的 px 值转换为 rem 值了。...无论选择哪种方法,实现 px 自动转换为 rem 都有助于在前端项目中更方便地进行响应式布局和适配不同屏幕尺寸的设备,大家可以根据项目所采用的技术栈以及个人偏好等来选择最适合的实现方式。

    93810

    前端项目里都有啥?

    --fix来修复部分问题,但是这种修复方式有限,不会百分百修复发现的问题 3. Prettier 或 Biome 「爱美之心,人皆有之」。我们也想让我们的代码变得赏心悦目,那代码美化就必不可少。...这主要是因为它与函数式编程相似,这使得它更具可读性和更容易理解。 Stylus[14] Stylus 提供了更多的表现力,同时保持了更简洁的语法。...(js|mjs|cjs|ts|mts|cts) 我们选择最常规的方式,postcss.config.js来配置,这样更容易处理一些逻辑。 postcss.config.js 本地安装PostCss。...浏览器必须等待加载每个导入的文件,而不是能够一次加载所有 CSS 文件。 用于在 CSS 文件中引入其他 CSS 文件 postcss-import与原生CSS中的导入规则不同。...优点:依赖项在状态更改时会自动更新 缺点:异步更新中的竞态条件可能导致应用程序状态混乱 既然,有这么多状态管理库,我们该如何选择呢。

    99210

    一份超级详细的Vue-cli3.0使用教程

    命令行: vue create hello-cli3 hello-cli3是文件夹名字,如果不存在会自动创建文件夹,如果存在会安装到那个文件夹中。...之前写了篇VsCode保存时自动修复Eslint错误推荐一下。 ?...把babel,postcss,eslint这些配置文件放哪: 通常我们会选择独立放置,让package.json干净些 ?...vue.config.js文件,文件中应该导出一个对象,然后进行配置,详情查阅官方文档 // vue.config.js module.exports = { // 选项... } 还有一些小变动像:static文件夹改为...其他 夜间风格界面,我更喜欢这个界面 直接打开编辑器,很棒了! 还有一些乱七八糟的按钮 ---- 结语 可以说很认真了,希望大家看完能够有些收获,赶紧试试新版的vue-cli吧!

    1.1K20

    Taro v3.6 代号为「Reach」,已发布 canary 版本

    一、支持路由库— Taro 3 适配前端 UI 框架的方式更接近于前端的本质,通过在小程序端模拟实现框架所需的 BOM/DOM API 来达成,对于适配各个路由库也是同样的思路。 1....2.14+ 版本会使用一些 webpack4 不兼容的语法特性,在 3.6-canary 之前的组件库将 stencil 版本限制在 2.13+ 版本内,在 3.6-canary 版本中也针对该问题进行了修复...类型自动生成 如何快速同步各小程序平台当前支持的类型,对于 Taro 来说一直是个很让人头疼的问题,实时跟进各个平台的每一次更新很难做到,更多时候我们都通过开发者提交的 PR 或 issue 对这些平台的类型更新...如果能够根据各个小程序平台官方提供的文档自动化生成组件类型,这对于开发者来说会是一个很棒的体验。...通过在 Taro 社区中的积极探讨[4]和论证,我们引入了自动同步各小程序平台组件类型的脚本,并通过与 GitHub CI 让机器人为 Taro 仓库提交类型更新 PR。

    1.1K40

    基于 gulp 的 fancybox 源码压缩

    —— 一个基于流的前端自动化构建工具,本文是学习的一些记录。...Gulp 简单介绍 Gulp 在官网的 title 是:用自动化构建工具增强你的工作流程,即一款基于流的前端自动化构建工具。作为前端的菜鸟,第一次听到这样的描述,是不是跟小编一样满头雾水?...把该文件中的hideScrollbar: true更改为hideScrollbar: false。.../node_modules/gulp/bin/gulp.js [11:14:32] Using gulpfile ~/fancybox/gulpfile.js [11:14:32] Starting '...我要投稿 本公众号长期欢迎大家踊跃投稿,投稿内容不限,可以是 Bio+IT 相关的编程、算法、统计、可视化、程序应用、运维等方面的经验知识;也可以是学习、生活、工作中的吐槽见闻。

    1.5K10

    Webpack 学习整理

    mini-css-extract-plugin loader 1)style-loader 负责将 css 以内联的方式插入文档中 2)vue-style-loader 功能和style-loader 类似,只不过它更专注于...postcss 是一个很强大的东东,这里我们只是用它的一个 loader,目的是为了简化 css 写法。 和 autoprefixer 配合使用,会自动给 css 加前缀。.../css/index.scss"); /* 去掉 url 改为 */ @import "../css/index.scss"; 搞好上面几个 loader,整个 css 的处理基本上就搞清楚了。...将检查你的所有代码,以查找目标环境中缺少的功能,并仅包含所需的 polyfill // 如果我们没有将 env preset 的 "useBuiltIns" 选项的设置为 "usage" ,就必须在其他代码之前...下面是一些常用 preset 和插件 @babel/core // 核心库,必须安装此依赖 @babel/cli // 是一个允许你从终端使用 babel 的工具(可以全局安装) @babel/preset-env

    75610
    领券