js如何保存文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何保存文件相关的知识,希望对你有一定的参考价值。

需要从服务器上下载一个exe文件,保存到本地,具体怎么写啊

js是客户端解释型脚本语言,依赖于浏览器,为了客户端安全,不能操作客户端电脑资源的,所以下载服务端的文件,直接html链接指向那个文件就可以的,具体保存到哪里,不同浏览器的处理会不一样,IE下载后会弹出保存对话框,chrome会直接保存到默认下载目录。 参考技术A window.open() // 打开一个新窗口。。。

追问

试过了没有反应啊?路径也对着呢window.open(url),就是不弹出保存窗口,难道自动保存下来了?

追答

有可能被浏览器的安全策略给屏蔽了。

本回答被提问者采纳

如何丑化文件并保存到另一个位置(vue.js)

【中文标题】如何丑化文件并保存到另一个位置(vue.js)【英文标题】:how to uglify a file and save to another location (vue.js) 【发布时间】:2018-09-21 23:43:31 【问题描述】:

我不确定如何丑化我的server.js 文件并将其保存到server 文件夹下的dist 文件夹中。现在我只是在使用CopyWebpackPlugin

new CopyWebpackPlugin([
  
    from: path.resolve(__dirname, '../static'),
    to: config.build.assetsSubDirectory,
    ignore: ['.*']
  ,
  
    from: path.resolve(__dirname, '../src/server'),
    to: config.build.assetsServerDirectory,
    ignore: ['*.sql']
  
]),

这可行,但只是简单的复制和粘贴。

【问题讨论】:

【参考方案1】:

你可以使用uglify-es + copy-webpack-plugin's transform():

安装包:

npm install uglify-es --save-dev

将其添加到您的来源:

const UglifyJS = require("uglify-es");                  // add the require

new CopyWebpackPlugin([
  
    from: path.resolve(__dirname, '../static'),
    to: config.build.assetsSubDirectory,
    ignore: ['.*']
  ,
  
    from: path.resolve(__dirname, '../src/server'),
    to: config.build.assetsServerDirectory,
    transform: function (content, path)                // add transform()
      return UglifyJS.minify(content.toString()).code;  // use uglify
    ,                                                  // (no args = mangle+compress)
    ignore: ['*.sql']
  
]),

注意:UglifyJS.minify(content.toString()).codeUglifyJS.minify(content.toString('utf8')).code 相同。 There are options in case of different encodings.

【讨论】:

我在尝试ERROR in Data must be a string or a buffer时猜到了错误 啊,好吧,必须修复返回到return UglifyJS.minify(content.toString()).code;。查看更新的答案。 成功了,谢谢。知道为什么 uglify-js 包不起作用吗?对奇怪的英语感到抱歉。 uglify-js 用于 ES 到 5。从 ES6(ES2015)及更高版本,它是 uglify-es。你可能有 let 或箭头函数之类的东西。 啊,是的,那是有道理的。再次感谢。【参考方案2】:

已经有一个图书馆为此做好了准备。您可以使用 uglifyjs-webpack-plugin

然后将捆绑的文件输出到你想要的目录

如果您不喜欢使用该插件。你可以使用 Webpack 的默认 uglifier。

const webpack = require("webpack");

    module.exports = 
      entry: 
        "bundle": "./server/server.js",
      
      output: 
        path: "./dist",
        filename: "[name].js"
      ,
      plugins: [
        new webpack.optimize.UglifyJsPlugin(
          include: /\.js$/,
          minimize: true
        )
      ]
    ;

【讨论】:

不要认为这行得通,因为我已经有一个 entrywebpack-merge 参与其中。

以上是关于js如何保存文件的主要内容,如果未能解决你的问题,请参考以下文章

如何js文件保存为utf-8编码

jQuery或者js保存文件到本地

如何丑化文件并保存到另一个位置(vue.js)

如何使用 Node.js 从 Supabase Storage 保存文件(将 blob 转换为文件)

如何使用 heatmap.js 保存由 canvas 标签生成的图像文件?

如何使用 Fetch API 下载和保存文件? (Node.js)