先上传Code,再详细分析。1.安装js-yaml模块enpminstalljs-yaml2。引入constjson2yaml=require('js-yaml');3。json转yaml下载downloadYaml(){letyamlStr=json2yaml.dump(this.transYamlFormat(),{lineWidth:-1});//this.transYamlFormat()会返回需要trans的jsonletexport_blob=newBlob([yamlStr]);让save_link=document.createElement('a');save_link.href=window.URL.createObjectURL(export_blob);save_link.setAttribute("下载",'config.yaml');save_link.click();save_link.remove();}写在下面学习分析1.npm1)Node包管理器2)npm由两个主要部分组成:一个用于发布和下载包的CLI(命令行界面)工具一个用于托管的在线存储库JavaScript包3)每一个JavaScript项目(无论是Node.js还是浏览器应用)都可以看作是一个npm包,package.json用于描述项目和包信息。4)运行npminit初始化JavaScript/Node.js项目时,会生成一个package.json文件,文件中的内容(基本元数据)由开发者提供:name:JavaScript项目名称或图书馆。版本:项目的版本。描述:项目的描述。license:项目的许可证。scripts:可以看作是项目本地运行的命令行工具组中项目的package.json:5)dependenciesvsdevDependencies,这两个以key-value对象的形式出现,npm的名称图书馆是关键。这些依赖项是通过带有--save或--save-dev标志的npminstall命令安装的。它们分别用于生产和开发/测试环境。6)确切的包版本将记录在package-lock.json文件中。package-lock.json通常由npminstall命令生成。7)如果你想在全局上下文中安装包,可以在机器的任何地方使用,你可以指定全局标志-g。8)依赖包的版本~会匹配依赖包最新的小版本,比如~1.2.3会匹配所有1.2.x版本,但不包括1.3.0^会匹配依赖包的最新大版本package,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但不包括2.0.0*安装最新版本的依赖包,比如*1.2.3会匹配x.x.x,2.nodemon(我们组项目的脚本中有一个nodemon)nodemon用于监控node.js应用的任何变化并自动重启服务,非常适合在开发环境中使用。nodemon会监控启动目录下的文件,如果有任何文件发生变化,nodemon会自动重启node应用。nodemon不需要对代码或其开发方式进行任何更改。nodemon只是包装你的节点应用程序并监视任何已更改的文件。nodemon只是node的替换包,它只是在运行脚本时在命令行上替换node。3、js中的JSON对象JSON对象包含两个方法:一个是parse(),用于解析成JSON对象;另一个是stringify()用于将对象转换为JSON字符串的方法。JSON.stringify方法是将一个JavaScript对象或值转换为JSON字符串。默认情况下,这个方法实际上有三个参数:第一个参数是必须的,后两个是可选参数。传入的第一个参数是要转换的对象;第二个是替换函数或数组,它可以选择只处理数组指定的属性。序列化作为对象传入时,如果replacer函数返回undefined或函数,该值将被忽略;第三个参数用于控制结果字符串中的间距,后两个参数总体用得较少。例如:4.js中的Blob对象Blob是BinaryLargeObject的缩写,表示二进制类型的大对象。在Web中,Blob类型的对象表示类似于文件对象的不可变原始数据。通俗的说,Blob对象是二进制数据,但它是类似于文件对象的二进制数据,所以Blob对象可以像File对象一样被操作。1)创建varblob1=newBlob([data1]);slice方法在源Blob对象中创建指定范围内的数据:varblob2=blob1.slice(0,3);2)使用(1)调用slice方法进行大文件的分部上传(2)BlobURLBlobURL可以通过URL.createObjectURL(blob)创建。在大多数场景下,我们可以像使用Http协议的URL一样使用BlobURL。常见的场景有:作为文件的下载地址,作为图片资源地址。每个对象都必须通过调用URL.revokeObjectURL()方法来释放。浏览器会在文档退出时自动释放它们。(3)DataURLDataURL将图片“嵌入”到HTML中。不同于传统的使用img标签将服务器上的图片引用到页面的方式,在DataURL协议中,将图片转换成base64编码的字符串保存在URL中,减少了外部对页面的请求服务器资源调用。DataURL在浏览器地址栏中输入后是什么样子的?正常情况下,你可以看到这个url代表的图片。优点在于:当访问外部资源比较麻烦或受限时;当图片由程序在服务器端动态生成,并为每个访问用户显示不同时;当图片尺寸太小时,占用一个HTTP会话是不划算的。限制是:Base64编码后的数据量通常是原始数据量的4/3,即DataURL形式的图片会比二进制格式的图片大1/3;DataURL形式的图像不会被浏览器缓存。这意味着每次访问此类页面时,都会下载一次。这是一个效率问题——尤其是当图像在整个站点中被大量使用时。(4)BlobURLvsDataURLBlobURL的长度通常较短。BlobURL只能在当前应用内使用,例如:img.src=url;将BlobURL复制到浏览器地址栏无法获取数据。相比之下,DataURL非常便携,您可以在任何浏览器中使用它。5.window.URL.createObjectURL创建一个新的对象URL,可以表示一个指定的文件对象或加粗对象。可用于在浏览器上预览本地图片或视频。
