我尝试使用webpack导入文件,我做我的正常:
import "../../lib/SampleFunctions.js";
在此示例函数中,有许多直接在全局名称空间(即
function CreateItem()
{
};
function CreaturePack(inside)
{
};
// constructor
CreaturePack.prototype = Object.create(CreateItem.prototype);
但问题是CreatePack或CreateItem在全局名称空间中不可用。
我以为我可以修复这个使用暴露插件,也许我用错了..但我做了以下
{test: /SampleFunctions\.js$/, loader: 'expose?CreaturePack'},
我现在有一个CreaturePack,但它是一个空对象,那么CreateItem呢?
我该怎么做呢?我希望能够使用import“.....file”,但在全局范围内创建我的对象。SomeFunctions是一个示例,真实的的文件非常复杂,所以我不能重构它来使用ES6模块。
是否有其他更好的加载器可以将所有内容都放置在全局名称空间中?
我有一些其他文件使用它,并希望这些函数在全局名称空间上。
2条答案
按热度按时间2wnc66cl1#
您需要使用
exports-loader
,而不是使用expose-loader
。yh2wf1be2#
@Martin:所以,如果我理解你的需求是正确的话,你希望在你的项目中有一些全局对象[它可能包括Server_Name,Version等],并在你的模块中使用它。
如果是这样,您可以在顶部的Webpack.config.js中导入该公共模块,将其分配给某个本地对象,并将其放在Webpack的externals对象中。
然后,您可以直接跨不同模块全局导入。