Webpack 4 + Babel在编译后的代码中保留了const

btx*_*btx 4 webpack babeljs webpack-4

我正在尝试让我的代码在不支持ES6的Android 4.1 Webview上运行。

但我收到此错误:

未捕获的SyntaxError:在严格模式下使用const。

.babelrc配置

{
  "plugins": [
    "lodash"
  ],
  "presets": [
    "@babel/preset-react",
    [
      "@babel/preset-env",
      {
        "targets": {
          "android": "4.1"
        },
        "useBuiltIns": "usage",
        "forceAllTransforms": true
      }
    ],
    "@babel/preset-stage-0"
  ]
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

rules: [
      {
        enforce: 'pre',
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: "eslint-loader"
      },
      {
        test: /\.jsx?$/,
        loaders: 'babel-loader',
        options: {
          plugins: ['lodash']
        },
        exclude: /(node_modules|bower_components)/
      },
   ]
Run Code Online (Sandbox Code Playgroud)

btx*_*btx 7

我发现,问题是由“查询字符串”模块引起的,该模块是另一个软件包的依赖项。如github所述,我明确安装了版本5。然后一切正常。

Github:查询字符串

此模块针对Node.js 6或更高版本以及最新版本的Chrome,Firefox和Safari。如果要支持较旧的浏览器,请使用版本5:npm install query-string @ 5。