npm webpack 如何配置使用非缩小的依赖项

Cob*_*aia 5 javascript dependency-management npm webpack webpack-4

我收到了来自 Google 的关于我在网上商店中的扩展程序的通知。

我们会定期检查 Chrome 网上应用店中的商品是否符合我们的计​​划政策,以确保为我们的用户提供安全可靠的体验。(...) 在审核过程中,您的项目被发现可疑,并且有一个或多个文件包含人类无法读取的缩小或混淆代码。

我使用 webpack 4 创建扩展包。我能够配置为不缩小也不混淆:

mode: "production",
optimization: {
  // We no not want to minimize our code.
  minimize: false,
},
Run Code Online (Sandbox Code Playgroud)

问题是依赖项(React、React-Dom 和 SweetAlert2)仍然被缩小了。

按照这个描述SplitChunksPlugin能够将依赖项移动到单独的文件:

mode: "production",
optimization: {
  // We no not want to minimize our code.
  minimize: false,
  splitChunks: {
    // Add the dependencies in the vendors file
    cacheGroups: {
      react: {
        test: path.join(__dirname, "node_modules", "react"),
        name: 'react',
        chunks: 'all'
      },
      sweetalert2: {
        test: path.join(__dirname, "node_modules", "sweetalert2"),
        name: 'sweetalert2',
        chunks: 'all'
      }
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

问题是依赖项仍然被缩小。我将模式修改为开发:

mode: "development",
Run Code Online (Sandbox Code Playgroud)

但是它添加了很多 eval 和本地引用,并且它仍然被缩小了。

"use strict";
eval("/** @license React v16.4.2\n * react-dom.development.js\n *\n * (...)
Run Code Online (Sandbox Code Playgroud)

是否可以使用 webpack 生成具有非缩小依赖项的项目?