首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在烧瓶中缩小ES2016或转换为ES2015?

如何在烧瓶中缩小ES2016或转换为ES2015?
EN

Stack Overflow用户
提问于 2019-04-17 00:17:42
回答 1查看 426关注 0票数 3

我使用的是flask-assets,但没有可用的过滤器(rjsmin、jsmin、closure_js、uglifyjs等)。能够缩小ES2016 JavaScript文件。缩小的文件在浏览器控制台上产生错误(由于错误的转换),甚至在服务资源之前执行时崩溃。另外,我也尝试过webassets的Babel filter,它不会对文件做任何更改,它们只是在没有更改的情况下提供。

我也不能设法强制执行闭包或babel extra_args来定制它们的操作。

有什么建议或建议吗?

示例代码:

代码语言:javascript
复制
from flask_assets import Bundle
page_js = Bundle(
    'js/code_with_es2016.js',
    filters='rjsmin',
    output='public/js/code.min.js'
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 21:53:42

您将需要在babel-presets-env中使用巴别塔过滤器。webassets文档有点落后于最近的发展,考虑到javascript世界的发展如此之快,这并不奇怪。

因此,首先需要全局安装babel-cli

代码语言:javascript
复制
npm install -g babel-cli

现在您需要在本地安装babel-preset-env,因此在项目目录中执行以下操作:

代码语言:javascript
复制
npm install --save babel-preset-env

最后是如何使用flask-assets设置捆绑包

代码语言:javascript
复制
from flask_assets import Bundle, Environment
from webassets.filter import get_filter

assets = Environment()
assets.init_app(app)
babel = get_filter('babel', presets='babel-preset-env')
assets.register('js_all', Bundle(
    'js/code_with_es2016.js',
    output='public/js/code.min.js',
    filters=[babel, 'rjsmin']
))

您还可以通过指定babel-preset-env的绝对路径或相对路径来告诉babel安装它的位置:

代码语言:javascript
复制
preset_location = './path/to/node_modules/babel-preset-env'
babel = get_filter('babel', presets=preset_location)
assets.register('js_all', Bundle(
    'js/code_with_es2016.js',
    output='public/js/code.min.js',
    filters=[babel, 'rjsmin']
))

最后一件事,这只是我的观点,我强烈建议你的前端资源切换到基于javascript/node的构建过程(你已经在使用babel了!)根据您正在开发的内容,gulp或webpack可能是用于前端构建的很好的候选者。Flask- seem /webasset似乎是不必要的,因为它们落后于文档和软件包版本,无论前端世界中最新和最好的是什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55712578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档