问题描述
我正在使用 django-compressor 并且我想在我的项目中使用 es5/es6 功能。我将预编译器选项设置如下:
NODE_MODULES = BASE_DIR / 'node_modules'
COMPRESS_PRECOMPILERS = (
('text/javascript','browserify {{infile}} -t {node_modules}/babelify -o {{outfile}} --presets {node_modules}/@babel/preset-env'.format(node_modules=NODE_MODULES)),('module','browserify {{infile}} -t {node_modules}/babelify -o {{outfile}} --presets {node_modules}/@babel/preset-env'.format(node_modules=NODE_MODULES)),)
如您所见,browserify 是全局安装的,而 babelify 和 @babel/preset-env 是本地安装在项目中的。
从文档 @babel/preset-env
现在是推荐使用的预设,但我收到以下错误:
ParseError: 'import' and 'export' may appear only with 'sourceType: module'
根据我的理解,当使用 babel/preset-env 时,您不需要需要任何其他的前置预设,例如babel-preset-es2015 等,对吗?如果是,此问题的可能原因是什么?
解决方法
虽然该命令运行良好,但似乎在我指定预设的方式上存在语法错误,无论如何我已经修复了:
COMPRESS_PRECOMPILERS = (
('text/javascript','browserify {{infile}} -o {{outfile}} -t [ {node_modules}/babelify --presets [ {node_modules}/@babel/preset-env ] ]'.format(node_modules=NODE_MODULES_LOCAL)),('module',)