我正在调试一个问题,该问题最近影响了我们的构建并破坏了与Internet Explorer浏览器的兼容性。我们已经有几个月没有更改JavaScript代码库了,但是在最近部署之后,似乎jQuery的“ $”已停止在IE中工作,从而完全破坏了该浏览器的页面。大多数对“ $”的函数调用都会返回某种形式的“对象不支持属性或方法'x'”,并且在大多数情况下,似乎为“ $”变量分配了错误的对象。
jQuery的问题只是最潜在的症状,如果我从遇到的每个错误中剔除jQuery的“ $”,最终我会在其他变量中发现类似的问题。但是同样,我们的代码库没有改变,只有我们的构建日期。
我试图寻找简单的东西,例如缺少分号或类似的错误。我在其他一些线程上读到,另一个问题可能是页面上的元素ID冲突,但事实并非如此。我曾尝试将代码库还原到几个月前,也没有任何乐趣。我已经考虑过基础架构和网络,但是它发生在内部网络内部和外部的客户端计算机和开发计算机上。
对我而言,最后一件有意义的事情是,自从上周五停止工作以来,对其中一个依赖项进行了一些更新,例如,当部署发生时,依赖项得到了更新并更改了构建中的最终工件。我的直觉说可能是Babel,但我不知道如何确认它,因为我对Bower或Angular的证明方式不够熟悉。
我的工作理论是,可能Babel更新了,或者是其他原因导致最近版本中断(也许babel-helper-evaluate-path?),因为我的研究似乎表明这是JavaScript的编译器,因此它运行类似在多个平台上。
"devDependencies": {
"babel-core": "6.26.3",
"babel-helper-evaluate-path": "^0.5.0",
"babel-preset-env": "1.7.0",
"babel-preset-minify": "^0.5.0",
"browser-sync": "^2.11.0",
"del": "^1.2.0",
"es6-promise": "^3.1.2",
"express": "^4.13.4",
"gulp": "^3.8.10",
"gulp-angular-htmlify": "^0.4.0",
"gulp-angular-templatecache": "^1.7.0",
"gulp-babel": "7.0.1",
"gulp-changed": "^1.1.0",
"gulp-compass": "2.0.4",
"gulp-concat": "^2.4.1",
"gulp-css-flip": "^0.4.0",
"gulp-cssnano": "^2.1.0",
"gulp-expect-file": "0.0.7",
"gulp-filter": "^2.0.2",
"gulp-html-prettify": "0.0.1",
"gulp-if": "^1.2.5",
"gulp-ignore": "^1.2.1",
"gulp-inject": "^1.3.1",
"gulp-jshint": "^1.11.0",
"gulp-jsvalidate": "^2.0.0",
"gulp-less": "^1.3.9",
"gulp-livereload": "^2.1.1",
"gulp-load-plugins": "^0.10.0",
"gulp-ng-annotate": "^2.0.0",
"gulp-rename": "^1.2.0",
"gulp-rtlcss": "^0.1.4",
"gulp-sass": "^2.3.2",
"gulp-sourcemaps": "^1.3.0",
"gulp-sync": "^0.1.4",
"gulp-uglify": "1.5.1",
"gulp-util": "^3.0.1",
"jshint-stylish": "^2.0.0",
"less": "^1.7.5",
"lodash": "^4.6.1",
"lodash._basecreate": "^3.0.3",
"lodash.isobject": "^3.0.2",
"marked": "^0.3.2",
"phantomjs-prebuilt": "^2.1.4",
"rimraf": "2.2.8",
"through2": "^0.6.3",
"yargs": "^3.7.2"
},
初始错误出现在此行:
var now = $.now(),
promise;
在IE运行时中,“ $。now()”的调用中断了,因为“ $”内部没有jQuery引用。
答案 0 :(得分:0)
从此处开始查看polyfills.ts并相应地取消注释:
/**************** BROWSER POLYFILLS*****************/
/** IE9, IE10 and IE11 requires all of the following polyfills. **/