使用gulp闭包编译器插件时出现JSC_REDECLARED_VARIABLE_ERROR

whitzsjs  于 2022-12-16  发布在  Gulp
关注(0)|答案(2)|浏览(142)

我已经尝试使用闭包编译器来优化和捆绑一个项目两个星期了。
这个项目最初是用TypeScript编写的。所以我想使用Tsickle来转化为JS,这样就可以很容易地输入闭包编译器Java应用程序。当我最终能够做到这一点时,我偶然发现了外部节点模块的问题。我尝试了所有我能够在Google群组、SO和闭包编译器repo中找到的解决方案。没有任何效果。
不想让这件事过去,我决定使用gulp。这是我的gulpfileiderjs,我试着让它尽可能简单。

const closureCompiler = require("google-closure-compiler").gulp();

gulp.task("js-compile", function () {
  return gulp
    .src("./src/**/*.js", { base: "./" })
    .pipe(
      closureCompiler(
        {
          compilation_level: "ADVANCED",
          warning_level: "VERBOSE",
          jscomp_off: "checkVars",
          js_output_file: "output.min.js"
        },
        {
          platform: ["native", "java", "javascript"]
        }
      )
    )
    .pipe(gulp.dest("./dist/js"));
});

有太多的输入文件让我放不进去。这次我用TSC代替Tsickle来传输。运行Gulp时我得到的错误是

[JSC_REDECLARED_VARIABLE_ERROR] Illegal redeclared variable: *nameofvariable*

我项目中的几乎每个文件都有这个,即使名称在同一个文件中不重复两次。

k4aesqcs

k4aesqcs1#

您可以尝试tscc,它在幕后使用了tsickle,并为外部node_modules问题提供了一些解决方案。

wqsoz72f

wqsoz72f2#

尝试--env CUSTOM--isolation_mode IIFE。我在编译与Node这样的浏览器接口冲突的代码时遇到了这个问题。

相关问题