Vue 3 - 如何将 Polyfill 添加到 ChainWebpack

Rya*_*iss 7 javascript webpack vue.js babeljs vuejs3

使用 Vue 3,如何添加path-browserify到 vue.config.js?

module.exports = {
    chainWebpack: config => {}
}
Run Code Online (Sandbox Code Playgroud)

编译时我收到以下错误:

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
        - install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "path": false }
Run Code Online (Sandbox Code Playgroud)

小智 10

Webpack 5 删除了 Webpack 4 包含在捆绑包中的一些内容。

要将其全部恢复到 vue3 应用程序中,您可以使用 polyfill 插件。来自带有 babel 的普通 create-vue-app:

> npm i node-polyfill-webpack-plugin
Run Code Online (Sandbox Code Playgroud)

babel.config.js

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}
Run Code Online (Sandbox Code Playgroud)

vue.config.js

const { defineConfig } = require("@vue/cli-service");
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack: {
    plugins: [new NodePolyfillPlugin()],
    optimization: {
      splitChunks: {
        chunks: "all",
      },
    },
  },
});
Run Code Online (Sandbox Code Playgroud)


Rya*_*iss 6

在 @Zack 的帮助下,使用chainWebpack

const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')

module.exports = {
    chainWebpack: config => {
        config.plugin('polyfills').use(NodePolyfillPlugin)
    },
}
Run Code Online (Sandbox Code Playgroud)