如果存在编译错误,ng build --watch 不会输出 dist 目录
Posted
技术标签:
【中文标题】如果存在编译错误,ng build --watch 不会输出 dist 目录【英文标题】:ng build --watch is not outputting dist directory if there is a transpilation error 【发布时间】:2018-06-12 14:11:17 【问题描述】:我的终端中有这个命令
$ ng build --watch
Date: 2018-01-02T21:42:45.851Z
Hash: f72a8ce7baf664dc5d5a
Time: 3260ms
chunk inline inline.bundle.js, inline.bundle.js.map (inline) 5.83 kB [entry] [rendered]
chunk main main.bundle.js, main.bundle.js.map (main) 303 bytes [initial] [rendered]
chunk polyfills polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 323 bytes [initial] [rendered]
chunk styles styles.bundle.js, styles.bundle.js.map (styles) 57.9 kB [initial] [rendered]
ERROR in src/main.ts(50,42): error TS2339: Property 'value' does not exist on type 'htmlElement'.
即使使用ng build
出现错误,我如何强制转译?无论如何,我希望 angular-cli 始终将目标文件输出到 dist
导演。
【问题讨论】:
Ignore Typescript Errors "property does not exist on value of type"的可能重复 不是那个问题的骗子,我需要忽略命令行中的所有错误,因此总是会发生转译 ***.com/questions/45028233/…的可能重复 ***.com/questions/41497187/…的可能重复 涉及(讨论)github.com/Microsoft/TypeScript/issues/11051 【参考方案1】:推荐的方法是使用类型断言:
let inputFields = document.getElementsByClassName("settings") as HTMLInputElement
如TypeScript bug 中所述。
基于angular-cli
configuration options,在构建过程中无法抑制错误。
您需要使用类型断言修复您的 TypeScript 代码,将变量强制转换为类型 any
,或者在您的 tsconfig.json
文件中使用配置标志 - 例如 "compilerOptions": "noImplicitAny":false
,您可以使用 read more about here.
有关 TypeScript 编译器选项的完整列表,请参阅:
https://www.typescriptlang.org/docs/handbook/compiler-options.html
【讨论】:
为了所有阅读本文的人,人们应该使用 tsconfig.json 中的哪些配置选项来忽略错误以上是关于如果存在编译错误,ng build --watch 不会输出 dist 目录的主要内容,如果未能解决你的问题,请参考以下文章
Angular ng build --watch 似乎在 Angular 版本 11 中被破坏了
当同时运行 ng build --watch 和 ng serve 时,Angular 7 库 html-template 更改不会影响到应用程序