一些自己在项目中使用的npm包

490 阅读2分钟

sass使用

npm i node-sass sass-loader@10.2.0 --save-dev

因为当前sass的版本太高,webpack编译时出现了错误,所以指定:npm install sass-loader@10.2.0 --save-dev 安装低版本的。

axios

特别好用的网络请求的封装

npm install axios

axios-js.com/zh-cn/docs/…

echarts的使用

当项目中需要使用图表

vue-echarts

npm install echarts vue-echarts

使用

const app = createApp(App)
import VueEcharts from 'vue-echarts'
app.component("vue-echarts", VueEcharts)

ecomfe.github.io/vue-echarts… v-charts

npm i v-charts echarts -S

使用vue2中

// 引入 
import VCharts from 'v-charts' 
import 'v-charts/lib/style.css' 
// 注册插件
Vue.use(VCharts)

v-charts由于不在维护,vue3不能使用。在vue2中使用还是挺方便的。

注意:安装的时候,由于没有在维护,可能会出现版本不兼容问题。建议安装一下版本的v-charts和echart

    "echarts": "^4.9.0",
    "v-charts": "^1.19.0",
    "vue": "^2.6.11",
    "vue-echarts": "^5.0.0-beta.0",

woolen.gitee.io/v-charts/#/…

element-plus组件库

    npm install element-plus --save

按需加载

npm install babel-plugin-import -D
// babel.config.js
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  plugins: [
    [
      'import',
      {
        libraryName: 'element-plus',
        // 引入组件
        customName: name => {
          name = name.slice(3)
          return `element-plus/lib/components/${name}`
        },
        // 引入样式
        customStyleName: name => {
          name = name.slice(3)
          // 如果你需要引入 [name].scss 文件,你需要用下面这行
          // return `element-plus/lib/components/${name}/style`
          // 引入 [name].css
          return `element-plus/lib/components/${name}/style/css`
        },
      },
    ],
  ],
}

使用

import 'element-plus/dist/index.css'
import {ElButton} from 'element-plus'

const app = createApp(App)
app.use(ElButton)

element-plus.gitee.io/#/zh-CN/com…

moment时间格式化

非常方便的一个事件格式化的js库

npm install moment --save 

使用,返回传入的时间和现在相差多久。

// 转化为中文
moment.locale('zh-cn')
moment(时间戳).startOf('hour').fromNow()

加载请求进度条

当请求数据时,会在窗口的头部出现加载进度条,增强了用户体验

npm install --save nprogress

引入加载进度条样式

//引入加载条样式
import 'nprogress/nprogress.css'
import 'element-plus/lib/theme-chalk/index.css';

封装的请求方法

import axios from 'axios'
import NProgress from 'nprogress'

function request (config) {
  const instance = axios.create({
    baseURL: 'http://127.0.0.1:7001',
    timeout: 5000
  })
  // 添加加载条样式
  // axios请求拦截器
  instance.interceptors.request.use(
    req => {
      NProgress.start() // 设置加载进度条(开始..)
      return req
    },
    error => {
      return Promise.reject(error)
    }
  )
  // axios响应拦截器
  instance.interceptors.response.use(
    function (res) {
      NProgress.done() // 设置加载进度条(结束..)
      if (res.data.status === 200) {
        return res.data.data
      } else {
        return "请求错误"
      }
    },
    function (error) {
      return Promise.reject(error)
    }
  )

  return instance(config)
}

export default request

github.com/rstacruz/np…

mitt 自定义事件

npm install --save mitt

由于vue3移除了自定义事件相关api。所以使用mitt非常方便。

import mitt from 'mitt'

const emitter = mitt()

// 发送事件

emitter.emit("字符串事件名", 参数)

// 定义事件
emitter.on('字符串事件名', 回调函数)

github.com/developit/m…

marked 转化markdown到html

npm install marked

使用, 他可以提供很多辅助功能,当开发个人博客网站的时候编辑文章的时候很有用。

marked(markedText);

marked.js.org/using_advan…

highlight.js 高亮代码片段

npm install highlight.js

使用:结合marked来高亮code片段。

highlightjs.org/usage/

vditor 一个非常好用的富文本编辑器

npm install vditor

github.com/Vanessa219/…