Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Flask丑化ES6 javascript?_Javascript_Python_Flask_Uglifyjs_Flask Assets - Fatal编程技术网

如何使用Flask丑化ES6 javascript?

如何使用Flask丑化ES6 javascript?,javascript,python,flask,uglifyjs,flask-assets,Javascript,Python,Flask,Uglifyjs,Flask Assets,我正在搜索一个Flask-Assets过滤器,该过滤器允许我修改javascript并支持ES6语法。我尝试使用uglifyjs es二进制而不是uglifyjs,但是我不知道如何配置我的过滤器来使用uglifyjs es二进制 我有这个: my_app_js = Bundle( 'js/MyApp.js', filters='uglifyjs', output='my_app_js.js' ) 从: UglifyJS是为NodeJ编写的外部工具;此筛选器假定 ugli

我正在搜索一个
Flask-Assets
过滤器,该过滤器允许我修改javascript并支持ES6语法。我尝试使用
uglifyjs es
二进制而不是
uglifyjs
,但是我不知道如何配置我的过滤器来使用
uglifyjs es
二进制

我有这个:

my_app_js = Bundle(
    'js/MyApp.js',
    filters='uglifyjs',
    output='my_app_js.js'
)
从:

UglifyJS是为NodeJ编写的外部工具;此筛选器假定 uglifyjs可执行文件位于路径中。否则,您可以定义 aUGLIFYJS_BIN设置

也许解决方案就在那里,但我不知道在哪里以及如何更改
UGLIFYJS_BIN
设置,知道吗

同样,我读到
uglifyjs es
项目不再维护。简洁似乎是另一种选择,但它也可以用作过滤器吗

编辑
如果你通过一个代码示例知道了一个替代
uglifyjs es
的好方法,你将赢得一笔赏金;)

看起来您需要设置一个名为
UGLIFYJS_-BIN
的环境变量。有关Linux说明或Windows说明,请参阅。

如果您使用npm安装了uglifyjs,它应该位于项目的
节点\u模块
文件夹中

您可以按如下方式配置flask:

app = Flask(__name__)
app.config['UGLIFYJS_BIN'] = 'path/to/node_modules/uglify-js/bin/uglifyjs'
关于丑陋,你知道它是没有维护的。但是如果你的代码用它来缩小,它仍然是一个不错的选择

如上所述:

  • uglify js只支持ES5代码作为输入
  • uglify es也支持ES6,但它是有缺陷的,已被放弃

泰瑟的命令行几乎和
ls
一样巴洛克风格。我发现对我来说,最简单的方法是使用精简插件的汇总,而且已经准备好了。这样,所有简短的配置都在您在过滤器额外参数中指定的汇总配置中完成。ES6模块的最小精简配置:

{
压缩:{ecma:2015,模块:true},
mangle:{module:true},
输出:{ecma:2015},
解析:{ecma:2015},
重命名:{},
}
使用已配置的Terser插件,您现在可以使用它,就好像它同时应用了bundle和minify过滤器一样:

来自flask_资产导入捆绑包
从webassets.filter导入寄存器\u过滤器
从webassets\u汇总导入汇总
寄存器过滤器(汇总)
all_css=捆绑(
'css/app.scss',filters='node-scss,cleancss',output='dist/all.%(version)s.min.css',
)
all_js=捆绑(
'js/main.js',filters='rollup',output='dist/all.%(版本)s.min.js',
)
似乎也是一个不错的选择,但我想在这种情况下我需要创建自己的自定义过滤器