我需要开发HTML application(HTA)来解决业务问题。我认为在引擎盖下使用Angular可以大大简化开发。
我已经通过ng new
创建了一个新的Angular项目并进行了一些小改动(详见下文),但是当我运行构建的HTA文件时,我收到此错误:
错误:' console'未定义
并且页面永远不会加载到HTA窗口中。
HTA使用IE 9(应用程序的要求阻止使用以后的浏览器版本),因此应用程序包含此元标记:
<meta http-equiv="X-UA-Compatible" content="IE=9">
Angular's documentation states that IE 9 is supported如果我取消注释polyfills.ts
中所有必要的polyfill,我已经完成了:
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
我已将收录的index.html
文件重命名为index.hta
,并在.angular-cli.json
中进行了相应的更改。
我已尝试将以下代码直接放入polyfills.ts
以规避丢失的console
:
if (!window.console) console = {error: function() {}};
然后我根本无法建立,因为它不像我重新定义console
:
ERROR in src/polyfills.ts(77,22): error TS2322: Type '{ error: () => void; }' is not assignable to type 'Console'.
Property 'assert' is missing in type '{ error: () => void; }'.
有人可以从这里建议前进的方式吗?
答案 0 :(得分:0)
我通过在<app-root></app-root>
的{{1}}行下添加以下代码解决了这个问题:
index.hta
当我双击HTA文件时,我现在得到“欢迎使用应用程序!”屏幕。
似乎Angular的构建过程并不像主页中声明的JavaScript一样紧密。