问题标签 [es5-compatiblity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 使用 es5 中的扩展的 ng-bootstrap datepicker 自定义日期适配器
我意识到这不是 ng-boostrap 的问题,但我一直在寻找答案,但没有找到任何对我有帮助或有意义的东西,因为我认为这是一个常见问题。我想我会在这里问,希望有人以前遇到过这个问题。
要格式化 ngb 日期文档状态,您应该创建一个自定义日期选择器适配器,该适配器扩展 NgbDateAdapter 和 NgbDateParserFormatter 类。
这是我的:
在我的 tsconfig 我有
但是我的日期选择器抛出了这个错误,我假设是因为我试图扩展类,即使那是文档说明要做的事情:
VM4213 angular.js:15635 TypeError:没有'new'就不能调用类构造函数NgbDateParserFormatter
如果我将 tsconfig 更改为:
它不再抛出错误,但我的应用不再支持 IE11。
我无法想象我是唯一遇到这种情况的人,但是我使用的是自定义 angular 10 构建,没有 angular-cli 所以谁知道。
任何指导将不胜感激。
javascript - 通过导入将 vanilla ES5 js 文件加载到 ES6 环境中
设想
作为我的原型设计过程的一部分,我想引入 tween.js,我可以使用<script>
html 部分上的标签来实现,但出于各种原因,我想将这个 vanilla es5 文件直接导入到我的 es6 文件中。
我想做的是
import * as TWEEN from 'import * as TWEEN from 'https://cdnjs.cloudflare.com/ajax/libs/tween.js/16.7.0/Tween.min.js'
虽然这似乎加载了远程文件,但我似乎没有得到诸如TWEEN.Tween
etc 之类的方法。我怀疑所有 es5 都在某种关闭真空 > 垃圾收集中被处理掉了。
问题
我意识到我可以在本地克隆这个文件,但我希望通过导入并不总是对 es6 友好的 cdn 文件来简化我的一次性样式原型设计。这可行吗?
javascript - 如何将字典使用的代码转换为 ES5?
下面的代码在带有字典的新浏览器中运行良好
但我应该支持 ES5。TypeError: Cannot read property "index" from undefined
但是我在启用 ES5 的浏览器中遇到了错误。
我尝试使用https://babeljs.io/repl将代码转换为 ES5 ,但没有帮助。
我该如何解决?
webpack - Webpack v5 自定义设置。为生产而构建时,我的 javscript 没有缩小
我的项目曾经缩小 Javascript 以用于生产,但现在我再次检查它,它没有。我已经移动了插件并编辑了各种东西以尝试让它再次工作,但我不能。请问有人可以帮我吗?
我也设置target: ['web', 'es5']
了,但这不会将 javascript 转换为 es5。
我想我加载东西的顺序会导致这个问题,但我无法弄清楚究竟是什么。
webpack.config.js
包.json
最后是我运行构建脚本时的输出
typescript - Typescript replaceAll 未在 es5 中转译
我在我的代码中使用带有ESNEXT
(截至 2021 年)的 Typescript replaceAll
,因为它比使用正则表达式更清晰。
我正在编译es5
,但在dist
文件夹中,在经过转换的 js 代码中,replaceAll
保持原样并且出现TypeError: replaceAll is not a function
错误。
我认为 Typescript 会以与 es5 一起使用的方式将其转换为 es5。为什么不这样做?我该如何解决这个问题?
我的 TS 配置是:
angular - 让 Angular 12 应用程序在非常旧的浏览器上运行
这是我的 Angular 版本:
我有一个 Angular 应用程序,可以在最新版本的 Chrome 和 Edge 上正常运行,但我们的大多数客户都在使用 IE11,或者真正的旧版 Chrome(例如:Chrome 45)。所以我需要使应用程序与所有这些浏览器兼容。
我尝试先解决 IE 11 的问题。到达应用程序主页时,我最初有一个空白页面。
我做了以下更改:
- 我已将
tsconfig
文件更改如下:
- 我已将我的
polyfill.ts
文件更新如下:
- 我已经更新了我的
browserslist
文件如下
- 我有以下 babelrc 文件:
有了这个配置,在 IE 11 中我终于可以看到我的登录页面了。我的登录页面有以下“登录”按钮:
- 我真的需要 babelrc 文件还是只需要更新 tsconfig 文件和 polyfill.ts 文件?
alert
Angular 材料不支持 IE11是不是事件未触发的原因onclick
?- 我尝试使用 Firefox 42 启动我的应用程序,但出现以下我不明白的错误:
谢谢您的帮助!
编辑:我能够尝试/捕获登录调用并警告错误。错误是ReferenceError: crypto is not defined
。有任何想法吗?
javascript - NodeJS 可以控制本地基于 Chromium 的信息亭上的 DOM 吗?
我有一个 NodeJS 应用程序,我在 BrightSign 上用于博物馆展览。我想维护 Node 模块格式,以便可以与其他兼容 JavaScript 的展览共享相同的代码。我熟悉 Webpack 并为 Web 创建单页应用程序,但这是一个稍微不同的场景。我可以控制服务器和客户端。
我的问题是:NodeJS 可以在 HTML 页面中运行而不通过捆绑程序运行吗?
任何人都可以深入了解(或指向我的信息)HTML 和浏览器(在这种情况下为 Chromium)如何以不同的方式处理 JavaScript?