vue 项目常用加载器及配置详解


Posted in Javascript onJanuary 22, 2018

本文介绍了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 安装完成后修改 <style>标签:

<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')
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JSON 客户端和服务器端的格式转换
Aug 27 Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 Javascript
让ie6也支持websocket采用flash封装实现
Feb 18 Javascript
cookie的secure属性详解
Apr 08 Javascript
JS快速实现移动端拼图游戏
Sep 05 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
微信小程序日历效果
Dec 29 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
Jun 10 Javascript
axios如何利用promise无痛刷新token的实现方法
Aug 27 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
vue制作toast组件npm包示例代码
Oct 29 Javascript
详解JSON.parse和JSON.stringify用法
Feb 18 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 #Javascript
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 #jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 #jQuery
angular写一个列表的选择全选交互组件的示例
Jan 22 #Javascript
vue-router 组件复用问题详解
Jan 22 #Javascript
详解webpack多页面配置记录
Jan 22 #Javascript
详解html-webpack-plugin用法全解
Jan 22 #Javascript
You might like
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php显示页码分页类的封装
2017/06/08 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
python构建基础的爬虫教学
2018/12/23 Python
Python饼状图的绘制实例
2019/01/15 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
python相对企业语言优势在哪
2020/06/12 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
军训自我鉴定100字
2014/02/13 职场文书
理财投资建议书
2014/03/12 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
企业年度评优方案
2014/06/02 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
体育活动总结
2015/02/04 职场文书
优秀团员自我评价
2015/03/10 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
安全教育观后感
2015/06/17 职场文书
小学体育组工作总结
2015/08/13 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
vue3获取当前路由地址
2022/02/18 Vue.js