前言
前面已經學到該如何安裝基礎插件了,但是平常我們在撰寫時不只有這樣子,舉例我來講我是習慣撰寫 SCSS 的,所以這篇就來記錄一下 SCSS 安裝及撰寫。
安裝一些套件
首先我們必須先安裝幾個套件
1
| npm install sass-loader node-sass css-loader mini-css-extract-plugin --save-dev
|
接下來我們在 src 底下建立一個 scss 資料夾並新增一個 all.scss

接下來在 all.scss 中撰寫一些東西

調整 webpack.config.js
沒有錯,又到了調整 webpack.config.js 的時間
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path');
module.exports = { entry: [ './src/index.js', './src/scss/all.scss', ], output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' }, module: { rules: [{ test: /\.scss$/, use: [ MiniCssExtractPlugin.loader, "css-loader", "sass-loader" ] }] }, plugins: [ new HtmlWebpackPlugin(), new MiniCssExtractPlugin({ filename: '/css/all.css' }) ], };
|
再來就是直接輸入 Webpack -p
,這樣就可以看到 dist 下面有編譯出來的 css 檔及 all.css 囉

那裡面呢?

基本上 webpack 都幫我們搞定哩
引入 Bootstrap
一般來講我們很常使用 Bootstrap,所以這邊也順便寫一下該如何引入 Bootstrap,首先輸入以下指令
1
| npm install bootstrap --save
|
然後打開 all.scss,寫入
1
| @import '../../node_modules/boostrap/scss/boostrap';
|
然後在輸入打包指令 webpack -p
之後再打開 dist/css/all.css,就可以看到 bootstrap 被引入囉

結尾
最後稍微調整一下 webpack.config.js 結構,順便啟用一下 CSS sourcemaps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path');
module.exports = { entry: [ './src/index.js', './src/scss/all.scss', ], output: { path: path.resolve(__dirname, 'dist'), filename: 'js/bundle.js' }, devtool: "source-map", module: { rules: [{ test: /\.(scss|sass)$/, use: [ MiniCssExtractPlugin.loader, { loader: "css-loader", options: { sourceMap: true } }, { loader: "sass-loader", options: { sourceMap: true } } ] }] }, plugins: [ new HtmlWebpackPlugin(), new MiniCssExtractPlugin({ path: path.resolve(__dirname, 'dist'), filename: 'css/all.css' }) ], };
|