【问题标题】:JSC_REDECLARED_VARIABLE_ERROR when using gulp closure compiler plugin使用 gulp 闭包编译器插件时的 JSC_REDECLARED_VARIABLE_ERROR
【发布时间】:2020-11-13 16:10:31
【问题描述】:

我已经尝试使用闭包编译器来优化和捆绑项目两周了。
该项目最初是用 TypeScript 编写的。所以我想使用Tsickle 转译成可以很容易地输入到闭包编译器Java 应用程序的JS。当我终于能够做到这一点时,我偶然发现了外部节点模块问题。我尝试了在 Google Groups、SO 和闭包编译器存储库中找到的所有解决方案。没有任何效果。

不想放过这个,我决定使用 gulp。这是我的 gulpfile.js,我尽量保持简单。

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*

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

【问题讨论】:

    标签: javascript typescript gulp google-closure-compiler


    【解决方案1】:

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

    【讨论】:

    • 我尝试将 tscc 与汇总文件和规范文件一起使用,但运气不佳。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2017-11-22
      相关资源
      最近更新 更多