升级到webpack4
This commit is contained in:
		
							
								
								
									
										112
									
								
								utils/copy_type.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								utils/copy_type.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,112 @@
 | 
			
		||||
import * as path from 'path';
 | 
			
		||||
import * as http from 'https';
 | 
			
		||||
import * as fs from "fs";
 | 
			
		||||
 | 
			
		||||
//修正d.ts中类型定义出现错误的问题,临时修复,因为d.ts并不能完全快速的合并我们的类型修复PR.
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 下载文件到指定的文件地址
 | 
			
		||||
 *
 | 
			
		||||
 * @param {string} url
 | 
			
		||||
 * @param {string} filePath
 | 
			
		||||
 */
 | 
			
		||||
function downLoadFile(url: string, filePath: string)
 | 
			
		||||
{
 | 
			
		||||
    if (fs.existsSync(filePath))
 | 
			
		||||
        fs.unlinkSync(filePath);
 | 
			
		||||
    else
 | 
			
		||||
        fs.mkdirSync(path.dirname(filePath));
 | 
			
		||||
    let file = fs.createWriteStream(filePath);
 | 
			
		||||
    http.get(url, function (response)
 | 
			
		||||
    {
 | 
			
		||||
        response.pipe(file);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 拷贝文件.
 | 
			
		||||
 *
 | 
			
		||||
 * @param {*} source 目标文件的地址
 | 
			
		||||
 * @param {*} targetFile 拷贝到新的地址
 | 
			
		||||
 */
 | 
			
		||||
function copyFileSync(source: string, targetFile: string)
 | 
			
		||||
{
 | 
			
		||||
    //if target is a directory a new file with the same name will be created
 | 
			
		||||
    if (fs.existsSync(targetFile))
 | 
			
		||||
    {
 | 
			
		||||
        if (fs.lstatSync(targetFile).isDirectory())
 | 
			
		||||
        {
 | 
			
		||||
            targetFile = path.join(targetFile, path.basename(source));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    fs.writeFileSync(targetFile, fs.readFileSync(source));
 | 
			
		||||
    console.log('targetFile: ', targetFile);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function copyFolderRecursiveSync(source, target)
 | 
			
		||||
{
 | 
			
		||||
    let files = [];
 | 
			
		||||
    //check if folder needs to be created or integrated
 | 
			
		||||
    let targetFolder = path.join(target, path.basename(source));
 | 
			
		||||
    if (!fs.existsSync(targetFolder))
 | 
			
		||||
    {
 | 
			
		||||
        fs.mkdirSync(targetFolder);
 | 
			
		||||
    }
 | 
			
		||||
    //copy
 | 
			
		||||
    if (fs.lstatSync(source).isDirectory())
 | 
			
		||||
    {
 | 
			
		||||
        files = fs.readdirSync(source);
 | 
			
		||||
        files.forEach(function (file)
 | 
			
		||||
        {
 | 
			
		||||
            let curSource = path.join(source, file);
 | 
			
		||||
            if (fs.lstatSync(curSource).isDirectory())
 | 
			
		||||
            {
 | 
			
		||||
                copyFolderRecursiveSync(curSource, targetFolder);
 | 
			
		||||
            } else
 | 
			
		||||
            {
 | 
			
		||||
                copyFileSync(curSource, targetFolder);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// copyFolderRecursiveSync("./@types/", "./node_modules/");
 | 
			
		||||
 | 
			
		||||
function downloadTypes(downFiles)
 | 
			
		||||
{
 | 
			
		||||
    let filePath = path.resolve("./node_modules/@types/" + downFiles.name) + "\\";
 | 
			
		||||
    console.log('filePath: ', filePath);
 | 
			
		||||
    for (let file of downFiles.files)
 | 
			
		||||
    {
 | 
			
		||||
        console.log(downFiles.urlPath + file);
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            downLoadFile(downFiles.urlPath + file, filePath + file);
 | 
			
		||||
        }
 | 
			
		||||
        catch (error)
 | 
			
		||||
        {
 | 
			
		||||
            console.log('error: ', error);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
downloadTypes({
 | 
			
		||||
    name: "three",
 | 
			
		||||
    urlPath: "https://gitee.com/BearCAD/DefinitelyType2/raw/master/three/",
 | 
			
		||||
    files: [
 | 
			
		||||
        // "index.d.ts",
 | 
			
		||||
        "three-core.d.ts",
 | 
			
		||||
        // "three-outlinepass.d.ts",
 | 
			
		||||
        // "three-smaapass.d.ts"
 | 
			
		||||
    ]
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
downloadTypes({
 | 
			
		||||
    name: "jquery",
 | 
			
		||||
    urlPath: "https://gitee.com/BearCAD/DefinitelyType2/raw/master/jquery/",
 | 
			
		||||
    files: [
 | 
			
		||||
        "index.d.ts"
 | 
			
		||||
    ]
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user