如何使用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',
)
似乎也是一个不错的选择,但我想在这种情况下我需要创建自己的自定义过滤器