使用JSMin压缩JSDOM时发生JavaScript压缩错误

使用JSMin压缩JSDOM时发生JavaScript压缩错误,javascript,mocha.js,hammer.js,jsdom,jsmin,Javascript,Mocha.js,Hammer.js,Jsdom,Jsmin,我的项目是用TypeScript为前端开发的 摩卡咖啡-用于单元测试 JSDOM-用于DOM模拟 Hammer.js-用于触摸用户体验 Grunt、JSMin等 项目文件结构如下所示: index.ts mymodule.ts mymodule_test.ts 由于Hammer.js在内部使用全局窗口和文档对象,因此我在import语句之前添加了一些复杂的代码,仅用于测试目的 mymodule.ts 1:从“jsdom”导入*作为jsdom; 2:if(窗口类型===‘未定义’){ 3:让

我的项目是用TypeScript为前端开发的

  • 摩卡咖啡-用于单元测试
  • JSDOM-用于DOM模拟
  • Hammer.js-用于触摸用户体验
  • Grunt、JSMin等
项目文件结构如下所示:

index.ts
mymodule.ts
mymodule_test.ts
由于Hammer.js在内部使用全局
窗口
文档
对象,因此我在import语句之前添加了一些复杂的代码,仅用于测试目的

mymodule.ts

1:从“jsdom”导入*作为jsdom;
2:if(窗口类型===‘未定义’){
3:让testDom:HTMLDocument=jsdom.jsdom(“”,未定义);
4:(全局).window=testDom.defaultView;
5:(全局).document=testDom;
6: }
7:从“hammerjs”导入*作为锤子;
...
现在测试运行成功。但构建失败并抛出以下错误:

Running "shell:minify" (shell) task

/home/yunbo/Workspace/jobkey/frontend/node_modules/jsmin/jsmin.js:231
            throw 'Error: unterminated string literal: ' + a;
            ^
Error: unterminated string literal: 
我搜索了一会儿,发现了一些关于这样一个错误的问题。 为了避免这个错误,我应该修改JSDOM的内部代码或删除
mymodule.ts
中的1-6行。但这两种价格都无法承受

  • 如果在
    mymodule.ts
    中删除1-6行,则无法运行测试
  • 修改JSDOM或JSMin的原始代码似乎不是正确的方法

我如何解决这个问题?我应该使用另一个JavaScript缩微器吗?或者不应该测试包含Hammer.js导入语句的
mymodule.js

我临时用简洁的语言解决了这个问题。正如我的一位朋友提议的那样,我尝试了UglifyJS3、JSMin2和Terser。只有泰瑟能够压缩JSDOM,但更详细的解释或其他方法将被接受为有效的答案。请让我更多地了解这个问题。非常感谢。