美文网首页
weex 部署npm run dev & npm run

weex 部署npm run dev & npm run

作者: 十一岁的加重 | 来源:发表于2018-07-23 15:10 被阅读2156次

    之前的部署流程都是用weex compilenginx,每次编译都会编译整个项目里的vue文件或者单独编译某个文件,由于项目较大,可能还有多级文件夹的情况,这样哪怕单独编译文件,也会有compile后目录的变化,也无法通过快捷的命令别名处理。

    所以后面我开始尝试npm run dev & npm run serve命令。
    以上命令会由npm自动开启服务器,默认8081端口,修改了文件保存,就能看到效果了,比以上的nginx模式好像要高档些。

    但是我们的部署情况是依赖于一个weex.json文件,所以这里我用python写了个脚本

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    import os
    import os.path
    import sys
    import socket
    import json
    
    
    jsFileInNginxPath = 'dist'
    nginxWeexJsonFilePath = "weex.json"
    
    def get_host_ip():
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(('8.8.8.8', 80))
            ip = s.getsockname()[0]
        finally:
            s.close()
    
        return ip
    
    
    
    
    # reload(sys)
    # sys.setdefaultencoding("utf-8")
    pageDicts = []
    weexJsonDict={}
    jsFileInNginxPaths = []
    
    
    
    for parent,dirnames,filenames in os.walk(jsFileInNginxPath):
        for filename in filenames:
            path = os.path.join(parent, filename)
            if path.endswith('.js') and path.count('.web.js') <= 0:
                jsFileInNginxPaths.append(path)
    
    #写入weex.json
    if jsFileInNginxPaths.count > 0:
        localIP = get_host_ip()
        baseUrl = "http://" + localIP + ":8080/"
        for jsFileInNginxPath in jsFileInNginxPaths:
            if jsFileInNginxPath.count('/include/') <= 0:
                jsFileInNginxPath = 'http://' + localIP +':8081'+'/' +  jsFileInNginxPath
                jsFileName = os.path.basename(jsFileInNginxPath)
                jsFileMD5 = 'ff'
                pageDicts.append({"md5":jsFileMD5,"page":jsFileName,"url":jsFileInNginxPath})
        weexJsonDict["pages"] = pageDicts
        weexJsonDict["patch"] = {}
        bundleZipFileMD5 = 'fs'
        weexJsonDict["zip"] = {}
        jsonStr = json.dumps( weexJsonDict, ensure_ascii=False, encoding='UTF-8')
        with open(nginxWeexJsonFilePath, 'wt') as f:
            f.write(jsonStr)
    
    
    
    

    这样就会自动生成一个weex.json的文件,客户端从这个文件就能找到相应的js页面了。
    后续开发weex页面,就生成一次weex.json文件后,修改vue文件,保存,重新进入页面就能刷新了。
    如果添加了vue文件,则需要重新运行脚本,然后客户端也得重启,下载最新的weex.json文件

    相关文章

      网友评论

          本文标题:weex 部署npm run dev & npm run

          本文链接:https://www.haomeiwen.com/subject/knkjmftx.html