Javascript 缩小JS是否找到并替换有效的替代策略?

Javascript 缩小JS是否找到并替换有效的替代策略?,javascript,reactjs,minify,bundling-and-minification,Javascript,Reactjs,Minify,Bundling And Minification,出于对问题不重要的原因(使用create react app的输出,希望在构建后参数化一些变量,即当它们被部署时),我希望用一个值替换字符串的所有实例,即“replace_ME” 如果我可以访问未缩小的javascript,这将是微不足道的;但是,我想知道在缩小的javascript上查找和替换是否足够?create react应用程序正在后台使用Webpack,您可以使用它在构建时实现这一点 // webpack.config.js const webpack = require('webpa

出于对问题不重要的原因(使用create react app的输出,希望在构建后参数化一些变量,即当它们被部署时),我希望用一个值替换字符串的所有实例,即“replace_ME


如果我可以访问未缩小的javascript,这将是微不足道的;但是,我想知道在缩小的javascript上查找和替换是否足够?

create react应用程序正在后台使用Webpack,您可以使用它在构建时实现这一点

// webpack.config.js
const webpack = require('webpack');

const config = {
  entry: './src/index.js',
  output: {
    ...
  },
  plugins: [
    new webpack.DefinePlugin({
      REPLACE_ME: JSON.stringify('yourBuildTimeValueGoesHere'),
    }),
    ...
  ],
  ...
}

module.exports = config;

缩小的JS应该让所有字符串保持不变,所以是的,它应该可以正常工作。这取决于代码所经历的转换。如果您的转换在传输之前做了一些奇怪的事情,比如base64编码所有内容,那么查找/替换可能不起作用。这需要弹出或使用forked
react脚本。我认为这是一种可行的方法;不过,我希望在构建后进行参数化-部署模式实际上是将react脚本的输出构建并将缩小的js/css和资产部署到nginx服务器,因此我希望在服务器部署期间参数化变量。。。目前正在考虑服务器启动脚本中的sed替换是否足够@chrisG说,字符串在缩小的文件中保持原样,因此sed应该可以工作。