---
# System prepended metadata

title: '[Vue] Vue 專案內設定 Sass 全域變數'
tags: [Vue.js, Vue CLI, Sass]

---

# [Vue] Vue 專案內設定 Sass 全域變數


###### tags: `Vue.js` `Vue CLI` `Sass`


想在 Vue 專案中加入 Sass 全域變數，可以參考 [Vue CLI 官方的教學](https://cli.vuejs.org/zh/guide/css.html#%E5%90%91%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8-loader-%E4%BC%A0%E9%80%92%E9%80%89%E9%A1%B9 "向预处理器 Loader 传递选项")

在 vue.config.js 檔案中撰寫
```javascript=
module.exports = {
  css: {
    loaderOptions: {
      sass: {
        // sass-loader@^7.0.0 用 data
        data: '@import "@/assets/style/variables.sass";', // 只有一個檔案的寫法
        data: `@import "@/assets/style/variables.sass";@import "@/assets/style/mixins.sass";`, // 有多個檔案的寫法
        
        // sass-loader@^8.0.0 用 prependData
        prependData: `@import "~@/assets/style/_variables.sass"`,
        
        // sass-loader@^9.0.0 用 additionalData
        additionalData: `@import "~@/assets/style/_variables.sass"`,
      },
    },
  },
}
```

* data：很久以前撰寫專案的設定，不確定寫法是否正確（結尾要加 **;** ？），印象中專案有正常運作
* prependData：專案運行時會出現 `Syntax Error: SassError: expected ";".`，加了 **;** 又出現 `Syntax Error: SassError: semicolons aren't allowed in the indented syntax.`，找解法時大部分遇到問題的都是要使用 SCSS，跟我要用 Sass 的情況不一樣，最後將 sass-loader 更新到 10.1.0 就沒問題了！不知道是這版的問題還是跟其他套件有衝突，下方是當時的環境
  ```javascript=
  /* 
   * node: v14.15.0
   * npm: 6.14.8 */
  "dependencies": {
    "axios": "^0.21.1",
    "core-js": "^3.6.5",
    "vue": "^3.0.0",
    "vue-router": "^4.0.0-0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/eslint-config-airbnb": "^5.0.2",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-vue": "^7.0.0-0",
    "pug": "^3.0.0",
    "pug-plain-loader": "^1.1.0",
    "sass": "^1.26.5",
    "sass-loader": "^8.0.2"
  }
  ```
* additionalData：目前（2020-12-29）可以正常運作


## 參考資料
* [sass-loader](https://github.com/webpack-contrib/sass-loader "sass-loader - GitHub")


---

:::info
建立日期：2020-12-29
更新日期：2020-12-29
:::


