[英]Resolving Export / Imports
我有一个类似以下内容的Namespacing.js
(function(){
window.GlobalObject = {
foo : function() { console.log("bar"); }
}
})();
然后我有另一个MyScript.js
GlobalObject.newAttribute = { ... }
所以我现在与webpack捆绑在一起,我试图在此上使用模块,但是我无法做到这一点。
我在Namespacing.js末尾添加了:
export default GlobalObject;
然后我尝试将其导入MyScript.js
import GlobalObject from "Namespacing"
但是后来我的webpack给我一个错误
[14:58:44] GulpUglifyError: unable to minify JavaScript
Caused by: SyntaxError: Unexpected token: name (Kneat) (line: 1, col: 7, pos: 7)
有谁知道进行此导出/导入的好方法吗?
要切换到import
/ export
,您不能仅将exports
添加到现有文件中,您需要(略有更改)更改其结构。
例如,Namespacing.js将具有以下任一功能:
export const GlobalObject = {
foo : function() { console.log("bar"); }
};
...导出命名符号GlobalObject
。 可以这样导入:
import { GlobalObject } from './Namespacing.js';
(如果要在导入模块中本地使用其他名称,则可以使用as
子句。)
或者,您可以将该对象导出为默认导出:
export default {
foo : function() { console.log("bar"); }
};
...并像这样导入它:
import GlobalObject from './Namespacing.js';
请注意,在这种情况下,可以在要导入GlobalObject
的模块中使用想要的名称作为GlobalObject
(不需要as
子句)。
不必担心删除IIFE的事实。 模块具有固有的作用域,模块代码不能在全局范围内运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.