本文介紹了vue 專案常用載入器及設定詳解,現在分享給大家,也給大家做個參考。
本文介紹了vue 專案常用載入器及設定詳解,分享給大家,具體如下:
1.安裝sass:
1.1 由於sass-loader依賴node-sass,所以在安裝sass-loader的同時還需安裝node-sass
npm install --save-dev node-sass npm install --save-dev sass-loader
1.2 安裝完成後修改c9ccee2e6ea535a969eb3f532ad9fe89標籤:
<style lang="scss"></style>
2.安裝axios:
axios用於資料請求,在Vue1.0的時候有一個官方推薦的ajax 外掛程式[vue-resource](https://github.com/pagekit/ vue-resource),但自從Vue 更新到2.0 之後,官方就不再更新vue-resource,推薦使用axios。
2.1 安裝:
npm install axios --save-dev
2.2. 在main.js中引入:
import axios from 'axios' Vue.prototype.$http = axios
2.3. 在元件中使用:
this.$http({ method:'get', url:'http://breadoffer.com/api/artcile', params:{ platformCode:'pc' // 用于向后台传参 } }).then(response => { console.log(response) })
3 .安裝mock:
3.1. 安裝:
npm install mockjs --save-dev
3.2. 使用:在src下新建mock.js檔案
import Mock from 'mockjs'; export default Mock.mock('http://platform.breadoffer.com/api/oversea', { "data":{ "breadActivities|9":[{ "title":"@csentence(5,25)", "desc":"@paragraph(2)", "beiginTime":"@date", "endTime":"@date", "stateName":"进行中", }], } })
3.3. 在需要資料的元件中引入:
import datas from '../mock' // 根据自己实际目录引入 methods: { request() { this.$http({ method: 'get', url: 'http://platform.breadoffer.com/api/oversea', params: { courseMaxCount: 2, //设置课程返回的数据为2条 teacherMaxCount: 10, //设置导师返回的数据为10条 } }).then(response => { console.log(response) }).catch(error => { console.log(error) }) }, }
4.安裝lib-flexible: --實作行動端自適應
4.1 安裝:
npm install lib-flexible --save
在實際開發過程中,使用flexible外掛程式時會自動把px轉換成rem單位,在vue專案中我們使用px2rem這個工具進行轉換,所以需要安裝px2rem載入器:
npm install px2rem-loader
4.2 在main.js中引入:
import 'lib-flexible'
4.3 設定px2rem-loader: (在build/untils.js)
remUnit 的意思是1rem=多少像素,結合lib-flexible,我們將px2remLoader的option.remUnit 設定成設計稿寬度的1/10,假設我們的設計稿寬度是750,則remUnit為75,然後在cssLoader後面加上px2remLoader即可
var px2remLoader = { loader: 'px2rem-loader', options: { remUnit: 75 } } // generate loader string to be used with extract text plugin function generateLoaders (loader, loaderOptions) { const loaders = [cssLoader,px2remLoader] if (loader) { loaders.push({ loader: loader + '-loader', options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) }
#5.安裝sass-resourses-loader
如果在專案中使用sass,或多或少會用到全域的變量,mixin/function等,那麼如何將其設為全域狀態,以避免在每個vue檔案中引入?
5.1 安裝sass-resources-loader:
npm i sass-resources-loader
5.2 在main.js中引入
import 'lib-flexible'
5.3 設定px2rem-loader: (在build/untils.js)
在檔案中找到這句註解
// [https://vue-loader.vuejs.org/en/configurations/extract-css.html](https://vue- loader.vuejs.org/en/configurations/extract-css.html)
在註解上方新增下列函數:
function resolveResouce(name) { return path.resolve(__dirname, '../src/sass/' + name); // sass文件所在目录 } function generateSassResourceLoader() { var loaders = [ cssLoader, // 'postcss-loader', 'sass-loader', { loader: 'sass-resources-loader', options: { // it need a absolute path resources: [resolveResouce('_mixin.scss')] } } ]; if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader'].concat(loaders) } }
並且將下列程式碼
// return { // css: generateLoaders(), // postcss: generateLoaders(), // less: generateLoaders('less'), // sass: generateLoaders('sass', { indentedSyntax: true }), // scss: generateLoaders('sass'), // stylus: generateLoaders('stylus'), // styl: generateLoaders('stylus') // }
取代為:
return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateSassResourceLoader(), scss: generateSassResourceLoader(), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') }
上面是我整理給大家的,希望未來會對大家有幫助。
相關文章:
使用百度地圖api如何清除指定覆蓋物Overlay具體怎麼做?
以上是在vue中載入器如何配置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!