下面介绍如何使用 Webpack 的 ProvidePlugin (它使模块在每个模块中都可以作为变量使用,而且只能在您实际使用它的模块中使用)。当您不想一遍又一遍地键入 import Bar from 'foo'时,这非常有用。或者,您可以在这里引入一个像 jQuery 或 loash 这样的包作为 global (尽管您可以查看 Webpack 的 外在的)。
创建任何模块。例如,一组全局的实用程序会很方便:
Utils.js
export function sayHello () {
console.log('hello')
}
第二步: 使模块别名化,并添加到供应插件:
Webpack.config.js
var webpack = require("webpack");
var path = require("path");
// ...
module.exports = {
// ...
resolve: {
extensions: ['', '.js'],
alias: {
'utils': path.resolve(__dirname, './utils') // <-- When you build or restart dev-server, you'll get an error if the path to your utils.js file is incorrect.
}
},
plugins: [
// ...
new webpack.ProvidePlugin({
'utils': 'utils'
})
]
}
console.log("Running App version " + VERSION);
if(!BROWSER_SUPPORTS_HTML5) require("html5shiv");
4. 使用全局窗口对象(或 Node 的全局对象)。
window.foo = 'bar' // For SPA's, browser environment.
global.foo = 'bar' // Webpack will automatically convert this to window if your project is targeted for web (default), read more here: https://webpack.js.org/configuration/node/