0.安装Sass
查了一下,Sass的功能比Less多一些,在服务器上跑,性能可能也会好一些?所以学一下吧
装个Ruby一路回车就OK,然后用gem装sass
gem install sass
再装个解析css样式的loader
npm i node-sass sass-loader -D
Sass在webpack中配置
{
test:/\.scss$/,
use:["style-loader", "css-loader","sass-loader"]
},
{
test:/\.css$/,
use:["style-loader","css-loader"]
},
引入时候sass或者css都可以引
import './css/style.css'; // 引入css
import './sass/style.scss'; // 引入scss
尝试写了一下嵌套,webpack dev server和webpack打包都能正常解析,sass配置搞定!
1.拆分CSS在webpack中配置
extract-text-webpack-plugin插件
上述方法打包后的css文件是以行内样式style的标签写进打包后的html页面中,如果样式很多的话,我们更希望直接用link的方式引入进去,这时候需要把css拆分出来。
extract-text-webpack-plugin插件它的功效就在于会将打包到js里的css文件进行一个拆分,单独提取css
const ExtractTextWebpackPlugin = require('extract-text-webpack-plugin');
{
test:/\.scss$/,
use: ExtractTextWebpackPlugin.extract({
fallback:"style-loader",
use:["css-loader",'sass-loader']
})
},
{
test:/\.css$/,
use: ExtractTextWebpackPlugin.extract({
fallback:"style-loader",
use:["css-loader"]
})
},
plugins: [
...
new ExtractTextWebpackPlugin('css/style.css')
],
这是个插件,所以一开始要const引入
此时,style-loader已经不需要了,因为现在已经用插件让css用link的方式引入了
现在打包一下(还是用之前写的嵌套sass),用webpack打包,可在dist文件中看到一个css文件夹、一个index.html和一个js文件, css文件夹中有一个.css文件。
打开html文件,能看到在head中有这样一句代码
<"link href="css/style.css" rel="stylesheet"/>
这样css文件或者sass文件就会通过link引入了
在plugins中设置的是路径,css文件会放在这个路径中,且规定好了名字。
2.装个babel-polyfill插件
Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。 举例来说,ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。
emmm想到美好的Set方法,看来这个插件也是不得不装了
npm install --save-dev babel-polyfill
看网上说可以通过webpack引入,或者在第一个js文件的顶部引入,我用webpack吧
entry: ["babel-polyfill","./src/index.js"]
OK,这就安排上了,具体有没有效,那之后写代码的时候再测试吧