带有 webpack 的条件变量名称
Conditional variabel name with webpack
我正在构建一个应用程序,每个人都可以使用源代码。根据最终系统将使用什么(有可能 运行 它与 electron
和在 C# WebBrowserControl
下)需要应用不同的全局变量名称。
例如
<--! This should not be applied to the end product if I don't specify that -->
<script>
const electron = require('electron');
const currentWindow = electron.remote.getCurrentWindow();
</script>
<!-- This is the end of the conditional statement -->
而且我还想在整个应用程序中将变量 currentWindow
的名称更改为 window
。
我可以用 webpack plugin/loader 或其他什么方式以某种方式做到这一点吗?
我使用了一个 similair 插件来 grunt
不久前我在代码中有这些条件语句取决于我 运行 和 grunt
.
有一个名为 DefinePlugin
的 Webpack 插件可以满足您的需要:https://webpack.js.org/plugins/define-plugin/
// webpack.config.js
const webpack = require('webpack');
module.exports = {
...
plugins: [
new webpack.DefinePlugin({
HOST: 'electron' // or 'WebBrowserControl', etc.
})
]
}
然后您可以从您的应用程序代码中将 HOST
作为全局变量访问:
if (HOST === 'electron') {
const electron = require('electron');
const currentWindow = electron.remote.getCurrentWindow();
} else if (HOST === 'WebBrowserControl') {
// etc...
}
根据您开始 Webpack 构建的方式,您应该能够根据您正在执行的构建类型将 webpack.config.js
中的 HOST
的值换出。
我正在构建一个应用程序,每个人都可以使用源代码。根据最终系统将使用什么(有可能 运行 它与 electron
和在 C# WebBrowserControl
下)需要应用不同的全局变量名称。
例如
<--! This should not be applied to the end product if I don't specify that -->
<script>
const electron = require('electron');
const currentWindow = electron.remote.getCurrentWindow();
</script>
<!-- This is the end of the conditional statement -->
而且我还想在整个应用程序中将变量 currentWindow
的名称更改为 window
。
我可以用 webpack plugin/loader 或其他什么方式以某种方式做到这一点吗?
我使用了一个 similair 插件来 grunt
不久前我在代码中有这些条件语句取决于我 运行 和 grunt
.
有一个名为 DefinePlugin
的 Webpack 插件可以满足您的需要:https://webpack.js.org/plugins/define-plugin/
// webpack.config.js
const webpack = require('webpack');
module.exports = {
...
plugins: [
new webpack.DefinePlugin({
HOST: 'electron' // or 'WebBrowserControl', etc.
})
]
}
然后您可以从您的应用程序代码中将 HOST
作为全局变量访问:
if (HOST === 'electron') {
const electron = require('electron');
const currentWindow = electron.remote.getCurrentWindow();
} else if (HOST === 'WebBrowserControl') {
// etc...
}
根据您开始 Webpack 构建的方式,您应该能够根据您正在执行的构建类型将 webpack.config.js
中的 HOST
的值换出。