ParseError: 'import' 和 'export' 可能只与 'sourceType: module' 一起出现,browserify

问题描述

我正在使用 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',)