环境:
macOS 10.13.6
node.js 8.11.3
sass 1.10.3
bootstrap 4.1.3
vs code 1.25.1

Bootstrap3为我们提供了在线编译工具,可以方便的调整变量,然后在线编译得到我们想要的CSS文件。Bootstrap 4 不知出于什么考虑,官网一直没有提供类似的在线工具,完成自定义后必须自己解决编译问题。Bootstrap 3 使用LESS,Bootstrap 4已改为使用SASS,所以首先解决SASS编译问题。SASS编译与VS Code无关,需要在Mac系统中安装SASS编译环境。

1.    安装node.js

从node.js官网下载for macOS安装包,安装node.js会同时安装npm包管理工具。

安装完成后,可以使用终端命令:

node -v

查看node.js是否安装成功。

sudo npm install npm@latest -g

更新npm版本。

2.    安装SASS编译工具

微软官方文档使用node-sass,终端命令:

sudo npm install -g node-sass less

但我始终没有尝试成功,无论是切换至root帐号还是使用国内镜像安装,都失败了,搭梯子也没用。要么是permission denied,要么是缺少python2环境,总之问题一大堆。

能够编译SASS的工具很多,换一个试试:

sudo npm install -g sass

这次很顺利,一次搞定。下面测试一下SASS是否能够正确编译。

新建一个空文件夹同时创建一个style.scss文件,输入测试代码:

$padding: 6px;

nav {
ul {
margin: ;
padding: $padding;
list-style: none;
} li { display: inline-block; } a {
display: block;
padding: $padding 12px;
text-decoration: none;
}
}

使用终端命令编译测试文件:

sass source/stylesheets/style.scss build/stylesheets/style.css

编辑成功后会得到我们预期的CSS文件:

nav ul {
margin: ;
padding: 6px;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
} /*# sourceMappingURL=styles.css.map */

SASS同时还为我们生成了map文件:

SASS编译环境已安装完成,VS Code就可以调用系统命令对SASS进行编译了。

3.    使用VS Code 编译 Bootstrap 4

1)    Bootstrap4源码结构

简单分析Bootstrap4源码,其中SCSS文件夹包含了所有样式文件源码,部件和工具都是单独的scss文件,很清晰。其中两个文件是需要留意。一个是bootstrap.scss,里面import了所有部件和工具,我们只需针对此文件编译即可得到完整的css文件;另一个是_variables.scss,里面定义了所有变量,如果要自定义样式,我们只需更改其中的变量即可。

2)    创建工作目录

Copy BS4源码其中的SCSS文件夹至工作目录,并新建一个custom.scss文件。目录结构:

bootstrap Custom
|-- scss
|-- custom.scss

scss文件夹存放BS4源码,为避免直接修改源码中的变量,我们将自定义变量放在custom.scss文件中。BS如果有升级,我们只需替换scss文件夹即可。

打开VS Code,打开工作文件夹,编辑custom.scss:

$theme-colors: (
"gray": #6c7074
); @import "scss/bootstrap";

文件最后import了scss文件夹中的bootstrap.scss文件,它含了bootstrap所有部件。

也可以单独引用指定部件:

// 必须
@import "scss/functions";
@import "scss/variables";
@import "scss/mixins"; $theme-colors: map-remove($theme-colors, "info", "light", "dark"); // 可选
@import "scss/root";
@import "scss/reboot";
@import "scss/type";
...

3)    创建VS Code任务

打开命令面板(⇧⌘B),选择“Tasks: Run Task” -  选择“配置任务...” -  选择“使用模版创建tasks.json文件” -  选择“Others”。上面步骤会创建tasks.json文件,我们可以对task进行配置:

label是任务名,command是sass编译命令,其与终端命令是一致的。

4)    完成编译

打开命令面板(⇧⌘B),运行我们的“Sass Compile”的任务。可以看到命令已成功运行,CSS及map文件已经生成。

4.    简单体验Bootstrap 4自定义

我的示例中为bootstrap添加了一个新的主题颜色:

$theme-colors: (
"gray": #6c7074
);

编译后bootstrap会将新的主题颜色应用到相应的部件上,例如按钮:

// bootstrap.css

.btn-gray {
color: #fff;
background-color: #6c7074;
border-color: #6c7074;
}
.btn-gray:hover {
color: #fff;
background-color: #5a5d60;
border-color: #53575a;
}
.btn-gray:focus, .btn-gray.focus {
box-shadow: .2rem rgba(, , , 0.5);
}
...

btn-gray 就是根据我们自定义主题颜色而生成的新样式,同样background,text部件也会增加相应的gray样式。我们在编码的时候就能使用自定义样式了。

显示效果:

是不是很棒,一个变量搞定一切。

参考:

https://code.visualstudio.com/Docs/languages/CSS
http://sass-lang.com/install

Mac系统使用VS Code编译Bootstrap 4的更多相关文章

  1. Mac系统下源码编译安装MySQL 5.7.17

    1.下载并解压到:/Users/xiechunping/Softwares/mysql-5.7.17下载地址:http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MyS ...

  2. Mac系统编译FFmpeg

    转载请标明来源:我不是掌柜的博客 前言 维基百科解释:FFmpeg是一个开源软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec – 这是一个用于多个项目中音频和视频的解码 ...

  3. Mac系统下编译支持Android平台的最新X264编码器

    Mac系统下编译支持Android平台的最新X264编码器 原文来自 http://www.mingjianhua.com,转载请注明出处 1.首先去官网下载最新的x264源代码,解压到任意目录 ht ...

  4. 开发者说 | 使用Visual Studio Code编译、调试Apollo项目

    转载地址:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247484266&idx=1&sn=d6bcd4842 ...

  5. Mac系统cocos2dx + android 开发环境配置

    Mac系统cocos2dx + android 开发环境配置 /****************************************************** 这遍文章主要转载自:htt ...

  6. virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统

    在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...

  7. Mac系统完美配置Cocos2d-x 2.2.3 的Android+IOS双平台环境

    注意:本文的Cocos2d-x的版本是2.2.3,更高版本可能会略有不同,低版本者不建议参考 首先需要配置XCODE环境 下载Cocos2d-x 然后下载Cocos2d-x的整个源码:http://w ...

  8. Appium Mac系统 自动测试环境搭建

    一.python 环境准备 Mac 自带 Python 环境,一般为 2.7 版本. 1.查看当前系统默认的Python路径 which python ==> /usr/bin/python 2 ...

  9. Mac系统下React Native环境搭建

    这里记录一下在Mac系统下搭建React Native开发环境的过程: 1. 安装HomeBrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...

随机推荐

  1. mysql innodb 数据表不存在

    方法一: https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 修改my.cnf文件 [mysqld] innodb ...

  2. socket实现udp与tcp通信-java

    1.简单介绍Socket Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字. 通信的两端都有Socket. 网络通信其实就是Socket间的通信. 数 ...

  3. experss 做小型服务器出现跨域问题

    情况是这样的 我用express做一个小型的服务器来做我demo项目的一个接口 然后我就出现了跨域问题 然后我就 app.all('/*', function(req, res, next) { // ...

  4. Python+Selenium 自动化实现实例-Link 捕捉元素的几种方法

    from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.baidu.com&quo ...

  5. 区间DP(区间最优解)题目讲解总结

    1:给出一个括号字符串,问这个字符串中符合规则的最长子串的长度. [分析]区间DP要覆盖整个区间,那么要求所有情况的并集. 先想出状态方程: dp[i][j]:i ~ j区间内最大匹配数目 输出:dp ...

  6. 决策树:ID3与C4.5算法

    1.基本概念 1)定义: 决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系,树中每个节点代表的某个可能的属性值. 2)表示方法: 通过把实例从根结点排列到某个叶子结点来分类实例,叶子 ...

  7. CodeForces888E Maximum Subsequence(折半枚举+two-pointers)

    题意 给定一个包含\(n\)个数的序列\(a\),在其中任选若干个数,使得他们的和对\(m\)取模后最大.(\(n\leq 35\)) 题解 显然,\(2^n\)的暴枚是不现实的...,于是我们想到了 ...

  8. Centos7搭建SVN Server手记

    安装svn和依赖模块 yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql 配置和使用 mkdir -p /opt/s ...

  9. Codeforces 550 D. Regular Bridge

    \(>Codeforces \space 550 D. Regular Bridge<\) 题目大意 :给出 \(k\) ,让你构造出一张点和边都不超过 \(10^6\) 的无向图,使得每 ...

  10. 【POJ】1089Intervals

    Intervals Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8276   Accepted: 3270 Descrip ...