Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从闭包编译器编译的模块中导出符号?_Javascript_Ecmascript 6_Google Closure Compiler_Google Closure Library_Es6 Modules - Fatal编程技术网

Javascript 如何从闭包编译器编译的模块中导出符号?

Javascript 如何从闭包编译器编译的模块中导出符号?,javascript,ecmascript-6,google-closure-compiler,google-closure-library,es6-modules,Javascript,Ecmascript 6,Google Closure Compiler,Google Closure Library,Es6 Modules,我在一个库文件中有许多由闭包编译器(高级)编译的JSES6模块 我无法使用/**@export*/或使用goog.exportSymbol('whatever',whatever)将一些符号导出到HTML页面中未编译的javascript 怎么做 Remarque:如果我将es6import/export替换为goog.require/goog.provide在所有模块中都有效,我可以在HTML页面中成功使用这些符号。您不能在模块中使用@export,但goog.exportSymbol应该有效

我在一个库文件中有许多由闭包编译器(高级)编译的JSES6模块

我无法使用
/**@export*/
或使用
goog.exportSymbol('whatever',whatever)
将一些符号导出到HTML页面中未编译的javascript

怎么做


Remarque:如果我将es6
import
/
export
替换为
goog.require
/
goog.provide
在所有模块中都有效,我可以在HTML页面中成功使用这些符号。

您不能在模块中使用
@export
,但
goog.exportSymbol
应该有效。您的另一个选项是手动导出它们:

window['whatever'] = whatever;

经过进一步调查,我找到了解决办法

虽然在浏览器中加载,但控制台中没有任何错误(当然,除了
未定义的任何内容),我的库没有执行。我只是将闭包库移到要编译的文件堆栈之前,然后浏览器正确地执行我的库,并正确地导出我的符号

导出符号的3种方法在已编译的es6模块中工作:
/**export*/whatever
goog.exportSymbol('whatever',whatever)
window['whatever']=whatever
。前两个是第三个的便捷方式


有关更多详细信息,请参见
goog.exportSymbol
window['which']=which
对我有用:当我在浏览器控制台中放置
Object.keys(window)
时,我只能看到模糊的符号(当使用
goog.require
/
goog.provide
而不是es6
import
/
export
时,相同的代码会生成正确的未模糊符号)。这意味着还有其他事情正在发生。您必须发布该问题的完整最小复制案例。