![](/img/trans.png)
[英]Webpack: Exposing global variable without using ProvidePlugin and expose-loader
[英]Webpack ProvidePlugin global variable (Cannot find module)
我对Webpack很新,但无法弄清楚为什么我的ProvidePlugin调用没有按预期工作。
我有以下文件:
var App = function() {
getSomething: function(size) {}
}();
module.exports = App;
我希望这个'App'变量可以全局访问,因为其他文件使用它如下:
var Layout = function () {
App.getSomething('md');
}();
在webpack.config.js中,我有以下行:
new webpack.ProvidePlugin({ App: 'app' })
这是我的条目:
entry: {
'app': './angularApp/metronicapp.ts',
}
import './metronic/global/scripts/app';
app
是我上面显示的app.js
我在浏览器中收到以下错误: Cannot find module "app"
当我在控制台中编译webpack时: Module not found: Error: Can't resolve 'app'
我无法想象我错过了什么。 我的app.js格式不正确吗? 为什么App
还没有全球可用?
ProvidePlugin
需要您的全局模块App.js
的路径。
const path = require('path');
...
plugins: [
new webpack.ProvidePlugin({
App: path.resolve(__dirname, './path_to_App.js')
})
]
对于Typescript,不要抱怨未定义的构造创建global.d.ts
declare var App: any;
无需在metronicapp.ts
导入./metronic/global/scripts/app
将在构建时解析App
。
App.getSomething('foo');
var Layout = function() {
App.getSomething('md');
}();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.