//拯救type错误的问题 let http = require('https'); let fs = require('fs'); let path = require('path'); function downLoadFile(url, path) { if (fs.existsSync(path)) { fs.unlinkSync(path); } let file = fs.createWriteStream(path); let request = http.get(url, function (response) { response.pipe(file); }); } function copyFileSync(source, target) { let targetFile = target; //if target is a directory a new file with the same name will be created if (fs.existsSync(target)) { if (fs.lstatSync(target).isDirectory()) { targetFile = path.join(target, 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); } }); } } // let filePath = "./@types/"; // let modules_path = "./node_modules/"; // copyFolderRecursiveSync(filePath, modules_path); function downloadTypes(downFiles) { 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" ] } );