我正在尝试使用webpack导入文件,我正常。
import" ../../ lib / SampleFunctions.js&#34 ;;
在此示例函数中,有许多函数直接在全局命名空间i..e
上创建function CreateItem()
{
};
function CreaturePack(inside)
{
};
// constructor
CreaturePack.prototype = Object.create(CreateItem.prototype);
但问题是CreatePack或CreateItem在全局命名空间中不可用。
我知道我可以使用expose插件解决这个问题,也许我使用它错了..但我做了以下
{test: /SampleFunctions\.js$/, loader: 'expose?CreaturePack'},
我现在有一个CreaturePack,但它是一个空对象,那么CreateItem呢?
有点疯狂,任何人都知道如何做到这一点。我希望能够使用import" ..... file"但我的对象是在全局范围内创建的。 SomeFunctions是一个示例,真实文件非常复杂,因此我无法重构它以使用ES6模块。
是否有其他更好的加载器将所有内容放在全局命名空间中?
我有一些其他文件使用它,并期望这些函数在全局命名空间。
答案 0 :(得分:1)
您需要使用exports-loader
。
expose-loader
答案 1 :(得分:0)
@Martin:所以,如果我理解你的要求, 你想在你的项目中有一些全局对象[它可能包含Server_Name,Version等]并在你的模块中使用它。
如果是这样,您可以在顶部的Webpack.config.js中导入该公共模块,将其分配给某个本地对象并将其放在Webpack的 externals 对象中。
var CommonModule = require('./config');
module.exports = {
........
externals: {
'appConfig': JSON.stringify(CommonModule)
}
........
}
然后,您可以直接在不同的模块中导入它。
import appConfig from 'appConfig';