如何使用 webpack 将一个字符串替换为另一个字符串?

李鸿章*_*李鸿章 12 webpack

我的代码中到处都有字符串持有者(.js,.ts...),例如'__DOMAIN_HOLDER__/id/20180101',我想替换'__DOMAIN_HOLDER__'为让 say 'https://www.example.com'

如何使用最新版本的 webpack 完成此操作?

d4n*_*yll 13

代替定义全局变量,您可以使用 string-replace-loader

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: 'string-replace-loader',
        options: {
          search: '__DOMAIN_HOLDER__',
          replace: 'https://www.example.com',
          flags: 'g'
        }
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)


vma*_*vma 11

你可以使用 webpack 的 DefinePlugin:

https://webpack.js.org/plugins/define-plugin/#usage

new webpack.DefinePlugin({
  __DOMAIN_HOLDER__: 'value'
})
Run Code Online (Sandbox Code Playgroud)

并且该变量将可供您使用。当然,您必须将其用作变量

`${__DOMAIN_HOLDER__}/id/20180101`
Run Code Online (Sandbox Code Playgroud)

将被替换为

value/id/20180101
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于所有字符串,而仅适用于全局变量。文档对此很糟糕......这非常令人困惑。 (2认同)