首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闭包编译器不编译ES6库

闭包编译器不编译ES6库
EN

Stack Overflow用户
提问于 2019-03-31 02:32:09
回答 2查看 730关注 0票数 2

我正在使用闭包编译器编写一个相当大的JavaScript库,但我做了一个较小的模拟,以用作此问题的一个示例:

src/main.js

代码语言:javascript
复制
export function main(str) {
    console.log("From main: " + str);
}

命令:

代码语言:javascript
复制
google-closure-compiler --compilation_level ADVANCED_OPTIMIZATIONS --language_in ECMASCRIPT6 --language_out ECMASCRIPT6 --js_module_root src/ --module_resolution node --js src/main.js --js_output_file build/main.min.js

预期结果(大致):

代码语言:javascript
复制
export function main(str){console.log("From main: "+str)}

实际结果:

代码语言:javascript
复制
'use strict';

长话短说,我已经挣扎了几个小时了,我不知道如何让闭包编译器尊重ES6的“导出”声明。我已经尝试谷歌很多次,但我只能得到"goog.modules“的结果,这不是我想要的。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-01 17:33:03

闭包编译器目前不支持模块作为输出(以任何格式)。

票数 0
EN

Stack Overflow用户

发布于 2019-03-31 02:41:30

如果只使用ADVANCED_OPTIMIZATIONS编译下面的函数,则闭包编译器将生成空输出: 函数displayNoteTitle(note) {警报(注‘’myTitle‘);} 因为函数从未在传递给编译器的JavaScript中调用,所以闭包编译器假定不需要这段代码!

参考

您应该添加一个调用函数的部分。

代码语言:javascript
复制
function displayNoteTitle(note) {
  alert(note['myTitle']);
}
displayNoteTitle({'myTitle': 'Flowers'});

也可以将其添加到window对象中。

代码语言:javascript
复制
function displayNoteTitle(note) {
  alert(note['myTitle']);
}
// Store the function in a global property referenced by a string:
window['displayNoteTitle'] = displayNoteTitle;

实例化

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55437376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档