Neil_HL
Neil_HL
  • 发布:2018-08-02 13:29
  • 更新:2024-02-03 15:09
  • 阅读:122528

uni-app引用npm第三方库

分类:uni-app

更新:从HBuilderX版本0.1.51或以上开始,uni-app支持使用npm安装第三方包。使用方式参考NPM支持

以下为过期信息=================================================
HBuilderX版本0.1.50或以下版本参考以下文章使用。

uni-app 的目录结构,不是src、dist并列方式。
HBuilderX里的uni-app,根目录是相当于src,dist并放到了unpackage目录下。
src目录下是不能直接 npm install 引入第三方库的。
你可以在别处install,然后把相关文件copy到src下。

本文以 echarts 为例讲解 uni-app 如何引用 npm 第三方库。

1. 下载第三方库

uni-app 使用了 mpvue 的部分代码,所以我们的 echarts 库使用兼用 mpvue 版本的 mpvue-echarts,同时需要引用百度的 echarts

下载流程如下:

  • 创建一个空的文件夹如:test-echarts。
  • 进入 test-echarts 打开命令行工具,执行 npm init 一路回车即可。
  • 下载第三方库:npm install echarts mpvue-echarts --save
  • 进入 node_modules 目录,里面的三个目录:echarts、mpvue-echats 、zrender 就是我们需要的第三方库。

2. 创建uni-app工程

在 HBuilderX 里面新建 uni-app,将将刚才下载的三个文件夹拷贝到项目根目录,最终项目截图如下:

3. 在uni-app里面使用第三方库

和一般的 vue 项目引用第三方库的方法一样,如下所示,这样我们就能在工程里面使用 echarts 和 mpvue-echarts 了。

import * as echarts from 'echarts'  
import mpvueEcharts from 'mpvue-echarts'

本示例源码在附件工程里面,下面是部分代码和效果截图:

<template>  
    <div class="container">  
        <mpvue-echarts :echarts="echarts" :onInit="onInit" />  
    </div>  
</template>  

<script>  
    import * as echarts from 'echarts'  
    import mpvueEcharts from 'mpvue-echarts'  

    function initChart(canvas, width, height) {  
        ......  
    }  
    export default {  
        data() {  
            return {  
                echarts,  
                onInit: initChart  
            }  
        },  
        components: {  
            mpvueEcharts  
        }  
    }  
</script>  

<style>  
    .container {  
        flex: 1;  
    }  
</style>

18 关注 分享
Trust 7***@qq.com dhb 问问你 青伢子 水域心诚 5***@qq.com s***@gmail.com 这是个昵称 Neil_HL 大笨蛋 来了老弟 4***@qq.com 9***@qq.com p***@163.com 1***@163.com Jasmine001 DCloud_UNI_HRK

要回复文章请先登录注册

8***@qq.com

8***@qq.com

现在新版本出了吗?
2018-09-28 09:10
Neil_HL

Neil_HL (作者)

回复 Chroisen :
预计十一放假前
2018-09-25 12:07
Chroisen

Chroisen

回复 Neil_HL :
什么时候发布下一个版本?就等着有npm install这个后再开始用uni-app,相信很多人都是这样。
2018-09-25 12:02
Neil_HL

Neil_HL (作者)

回复 d***@qq.com :
下次发版支持那npm直接安装
2018-09-25 10:38
d***@qq.com

d***@qq.com

这样不方便啊 node_modules里的文件成千上万
2018-09-22 10:14
5***@qq.com

5***@qq.com

用HBuilderX编译这个工程出错了,新手不知道咋解决了。。。

编译提示信息如下:
16:44:03.660 模块编译失败:Error: Cannot find module 'deep-equal'
16:44:03.666 at Function.Module._resolveFilename (module.js:547:15)
16:44:03.670 at Function.Module._resolveFilename (D:\Tools\HBuilderX\plugins\uniapp\node_modules\module-alias\index.js:49:29)
16:44:03.674 at Function.Module._load (module.js:474:25)
16:44:03.679 at Module.require (module.js:596:17)
16:44:03.683 at require (internal/module.js:11:18)
16:44:03.689 at Object.<anonymous> (D:\Tools\HBuilderX\plugins\uniapp\lib\mpvue-loader\lib\mp-compiler\index.js:7:19)
16:44:03.697 at Module._compile (module.js:652:30)
16:44:03.698 at Object.Module._extensions..js (module.js:663:10)
16:44:03.703 at Module.load (module.js:565:32)
16:44:03.709 at tryModuleLoad (module.js:505:12)
16:44:03.714 at Function.Module._load (module.js:497:3)
16:44:03.720 at Module.require (module.js:596:17)
16:44:03.725 at require (internal/module.js:11:18)
16:44:03.730 at Object.<anonymous> (D:\Tools\HBuilderX\plugins\uniapp\lib\mpvue-loader\lib\loader.js:26:38)
16:44:03.736 at Module._compile (module.js:652:30)
16:44:03.737 at Object.Module._extensions..js (module.js:663:10)
16:44:13.712 已停止运行...
2018-09-12 17:05
3***@qq.com

3***@qq.com

什么时候支持直接npm install呢?如果我要使用socket.io-client ,需要引入哪些文件?
2018-08-06 16:32
7***@qq.com

7***@qq.com

昨天说写教程今天就发出来了,效率点赞
2018-08-02 13:49