vue在linux下打包路径大小写敏感,问题解决

window下文件的路i的大小写是不敏感的,而linux下文件的路径名称需要区分大小写,在用linux打包文vue项目的时候会出现路径错误。要在linux 下完成打包,需修改文件中路径引用严格区分大小写。

此处通过python 脚本对 route/index.js 路径进行修改获取正确路径

checkpath.py

# -*- coding:utf-8 -*-
'''
Description: 
Author: xiaoming
Date: 2021-12-30 15:22:01
'''
import re
import glob
import os.path
def get_actual_filename(name):
    copyname = name
    thisPath = os.path.abspath(os.path.dirname(__file__))
    #某些路径的不以vue结尾,可能是文件夹,也有可能是文件名称不包括扩展名
    if name[-3:] !="vue":
        if os.path.isdir( os.path.join( thisPath, name ) ):   # isdir 参数需要传入绝对路径
            name = name + "/index.vue"
        else:
            name = name + ".vue"
    #有些文件已经被注释掉了文件路径找不到直接返回获取的内容即可
    if os.path.isfile( os.path.join( thisPath, name ) ) ==False:
        return copyname

    #glob.glob获取文件的正确文件名需要传入文件名的格式 name
    name = "%s[%s]" % (name[:-1], name[-1])
    right = glob.glob(name)[0].replace('\\', '/')
    return right


with open('index.js','r',encoding='utf-8') as file:
    origin=file.read()
    
    
    a = re.findall(r"require\(\[\'(.+?)\'\]", origin)
    
    # 获取到要替换的字符串并进行替换
    for i in a:
        old = i
        new = get_actual_filename(i)
        print(new)
        origin = origin.replace(old, new)

    f1 = open('result.js','w')
    f1.write(origin)
    f1.close

目标文件

在这里插入图片描述

生成的结果文件

该结果文件是通过运行checkpath.py脚本生成的,用result.js替换index.js即可。
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐