问题标签 [tsickle]
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 - google-closure-compiler 无法处理用 tsickle 转译的 Angular 2
我有一个Angular 2
打字稿项目,我想将它捆绑到一个 JS 文件中。引导程序:
main.ts
我使用Angular 2
's Ahead-of-Time 编译器来生成ngfactory.ts
文件。然后我跑来tsickle
将我的文件转换为与 Google Closure Compiler 兼容的 JS。这毫无困难地完成了:
结果如下:
main.js
最后,我使用google-closure-compiler-js
创建一个 gulp 任务,将所有 JS 捆绑到一个文件中。
gulpfile.js
任务立即失败并出现许多错误。这是一个示例:
dev\main.js:3 (JSC_REFERENCE_BEFORE_DECLARE) 声明前引用的变量:module$contents$C_$websites$learn$angular2$dev$main_platformBrowser
dev\main.js:5 (JSC_REFERENCE_BEFORE_DECLARE) 声明前引用的变量:module$contents$C_$websites$learn$angular2$dev$main_AppModuleNgFactory
dev\main.js:7 (JSC_REFERENCE_BEFORE_DECLARE) 声明前引用的变量:module$contents$C_$websites$learn$angular2$dev$main_enableProdMode
dev\main.js:10 (JSC_POSSIBLE_INEXISTENT_PROPERTY) 属性 bootstrapModuleFactory 从未定义过?
dev\main.js:3 (JSC_INTERNAL_ERROR_UNEXPECTED_TOKEN) 内部错误:TypeCheck 不知道如何处理 IMPORT
dev\main.js:3 (JSC_INTERNAL_ERROR_UNEXPECTED_TOKEN) 内部错误:TypeCheck 不知道如何处理 IMPORT_SPECS ...
我正在使用tsickle
截至 2016 年 10 月 10 日从 GitHub 克隆的最新源以及"google-closure-compiler-js": "^20160916.0.0"
.
我错过了一步吗?
typescript - 闭包编译器不会从自调用函数中删除死代码
我正在编写一个 TypeScript 应用程序,它需要两个数字并将数字的总和打印到控制台。
calculator2.ts
:
app.ts
:
我运行 tsickle 将 TypeScript 转换为 Google Closure Compiler 可以理解的 JavaScript。然后我运行带有高级优化标志的闭包编译器来缩小我的代码。
这是输出(漂亮打印):
正如预期的那样,这将打印 7,但是calculator.subtract()
(d.a
在缩小的代码中) 没有被删除,而我没有使用它。
如果我calculator
像这样修改文件:
闭包编译器输出:
有没有办法告诉闭包编译器该subtract
函数未被调用(至少不是从app.ts
)并且可以将其删除?
另一个测试:
使用'calculator3.ts'
和“app.ts”
生成:
哪个删除了subtract
功能,但没有优化console.log("Answer: 7")
(这不是必需的,但会很棒)
typescript - 闭包编译器 + 打字稿
我想使用 Typescript,然后使用 Closure Compile(高级编译)来定位 ES5 并缩小输出。
我必须使用tsickle代替 tsc 吗?它缺乏对 tsc 的所有选项的支持,并且雄心勃勃,因为它想将 Typescript 类型转换为 Closure 类型(不是 100% 兼容的)。我真的不需要使用闭包类型;我只需要缩小/属性重命名。
我可以使用 tsc 将 Typescript 编译为 ES6 模块并使用 Closure Compiler 来缩小这些模块(不进行类型检查或基于类型的优化)吗?
奖励:如果我想使用闭包库,这个答案会改变吗?
javascript - 尝试使用 tsickle/closure 编译 angular5 项目,我得到“goog.module 的主体无法引用它”。
我正在尝试使用 google 闭包编译一个相对复杂的 angular5 项目。
首先我使用tsickle将代码编译成对 google 闭包友好的语法,然后我尝试使用 google 闭包来创建最终包。
不幸的是,tsickle 似乎创建了一个与 google 闭包不兼容的模块格式,对于我拥有的所有模块,我都收到以下错误:
但是,考虑到最近 ngc -> tsickle 使用 angular5 切换以帮助构建闭包的意图,我认为它应该可以工作。
检查一点 my path/to/component.js
,我在一开始就发现了这个:
看来,打字稿编译器(由 tsickle 内部调用)将此代码放在所有模块之前,它在 tsickle 不知情的情况下执行此操作,并且使模块格式与 google 闭包不兼容!
该怎么办?如何解决它?
angular - 导出的枚举不会用 tsickle/closure 编译
我正在尝试使用新的 tsickle/closure 链编译一个角度项目。但是,它似乎必须在所有枚举上遵循错误:
src/path/to/YourEnumType.ts:1: 错误 - 导出必须是模块顶层的语句
我的代码是这样的:
我该如何处理这个问题?
google-closure-compiler - 如果我在不同目录中使用 tsconfig.json 调用 Tsickle,则会显示“在配置文件中未找到错误输入”
用
我收到此错误:
错误在配置文件“target/src/tsconfig.json”中找不到输入。指定的“包含”路径为“[”./my/pathes/**/*.ts“]”,“排除”路径为“[“some/other/thing”]”。
为什么?考虑到这tsickle
只是一个包装器tsc
,如果我进行等效tsc
调用,它会毫无问题地发生。在 tsickle-tsc 交互中一定有问题,但是什么?
angular8 - 通过 ngc TypeError 编译 TypeScript 源:无法读取未定义的属性 'directoryExists'
从 Angular CLI 1.7.0 更新到 Angular 8。
让一切在本地工作,但在“npm packager”步骤中构建定义失败。
最初在缺少 tstickle 时出错,在将其添加到 package.json 后,“tsickle”:“0.39.1”
2020-09-24T21:15:41.5201500Z 通过 ngc 编译 TypeScript 源 2020-09-24T21:15:41.5201643Z 2020-09-24T21:15:41.5201764Z 构建错误 2020-09-24T21:15:41.52018Cannot8Error读取未定义的属性“directoryExists”
包.json:
任何解决此问题的建议将不胜感激。
angular - 无法在 Angular 中创建新项目:tsickle 依赖问题
我已经安装了:
- node.js v15.6.0
- npm 7.5.0
- 角 CLI:11.1.2
我在 Windows 10、64 位上运行。
我正在尝试通过运行来创建我的第一个项目:
其中“angular-demo”是项目名称。该命令创建一个包含一些初始文件的项目目录,然后它运行 npm 并在日志文件中显示以下消息失败
我用谷歌搜索了一下,发现 tsickle 是一些与打字稿相关的工具,它只支持最多 3 个打字稿版本,而不是 4 个。我不知道为什么 angular 会尝试安装打字稿版本和 tsickle 的这种组合。
node.js - 无法构建 Angular 7 组件库
我曾经在 Angular 版本 11 中顺利创建组件库,没有任何问题,但是当我在 Angular 版本 7 中创建组件库时,在 ng build component lib 时出现错误
他要求tsickle模块,但是在json包中tsickle已经存在
我的package.json
我也尝试过将其关闭"annotateForClosureCompiler": false
以不被束缚/需要 tickle 但这也不起作用
我也尝试过替换 tsickle 指令@node_modules/ng-packagr/lib/ngc/create-emit-callback.js
const tsickle = require("tsickle/src/tsickle");
成为
const tsickle = require("tsickle/build/src/tsickle");
或者
const tsickle = require("../../../tsickle/out/src/tsickle");
它不起作用,而是添加到我的错误消息中
我的第 7 版 Angular 应用程序到底发生了什么?为什么不能 ng 构建组件库
我很沮丧,所有的帮助和建议,我谢谢你