我正在使用闭包编译器编写一个相当大的JavaScript库,但我做了一个较小的模拟,以用作此问题的一个示例:
src/main.js
export function main(str) {
console.log("From main: " + str);
}命令:
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预期结果(大致):
export function main(str){console.log("From main: "+str)}实际结果:
'use strict';长话短说,我已经挣扎了几个小时了,我不知道如何让闭包编译器尊重ES6的“导出”声明。我已经尝试谷歌很多次,但我只能得到"goog.modules“的结果,这不是我想要的。任何帮助都将不胜感激。
发布于 2019-04-01 17:33:03
闭包编译器目前不支持模块作为输出(以任何格式)。
发布于 2019-03-31 02:41:30
如果只使用ADVANCED_OPTIMIZATIONS编译下面的函数,则闭包编译器将生成空输出: 函数displayNoteTitle(note) {警报(注‘’myTitle‘);} 因为函数从未在传递给编译器的JavaScript中调用,所以闭包编译器假定不需要这段代码!
您应该添加一个调用函数的部分。
function displayNoteTitle(note) {
alert(note['myTitle']);
}
displayNoteTitle({'myTitle': 'Flowers'});也可以将其添加到window对象中。
function displayNoteTitle(note) {
alert(note['myTitle']);
}
// Store the function in a global property referenced by a string:
window['displayNoteTitle'] = displayNoteTitle;https://stackoverflow.com/questions/55437376
复制相似问题