webpack newbie ici, WebPack CLI m'a dit que j'avais besoin de fournir un alias pour Crypto car WebPack n'inclut plus les bibliothèques de nœuds par défaut. Maintenant, je reçois cette erreur, d'autres réponses n'ont pas beaucoup aidé. Crypto-Browserify
essaie d'accéder à process.browser
. Quelqu'un peut-il faire plus de lumière? CLI m'a dit d'installer Stream-Browserify
aussi j'ai fait.
React V17, Babel 7.12.9, WebPack 5.6.0
webpack.common .js
const webpack = require('webpack'); const { merge } = require('webpack-merge'); const common = require('./webpack.common'); module.exports = merge(common, { mode: 'development', // Control how source maps are generated devtool: 'inline-source-map', // Spin up a server for quick development devServer: { historyApiFallback: true, contentBase: paths.build, open: true, compress: true, hot: true, port: 8080, }, plugins: [ // Only update what has changed on hot reload new webpack.HotModuleReplacementPlugin(), ], });
webpack.dev.js
const paths = require('./paths'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const dotenv = require('dotenv-webpack'); module.exports = { entry: [paths.src + '/index.js'], output: { path: paths.build, filename: '[name].bundle.js', publicPath: '/', }, plugins: [ new dotenv(), new CleanWebpackPlugin(), new CopyWebpackPlugin({ patterns: [ { from: paths.public, to: 'assets', globOptions: { ignore: ['*.DS_Store'], }, }, ], }), new HtmlWebpackPlugin({ title: 'Webpack Boilerplate', // favicon: paths.src + '/images/favicon.png', template: paths.src + '/template.html', filename: 'index.html', }), ], resolve: { fallback: { crypto: require.resolve('crypto-browserify'), stream: require.resolve('stream-browserify'), }, }, module: { rules: [ // javascript { test: /\.js$/, exclude: /node_modules/, use: ['babel-loader'], }, // images { test: /\.(?:ico|gif|png|jpg|jpeg)$/i, type: 'asset/resource', }, // Fonts and SVGs { test: /\.(woff(2)?|eot|ttf|otf|svg|)$/, type: 'asset/inline', }, // CSS, PostCSS, and Sass { test: /\.(scss|css)$/, use: [ 'style-loader', { loader: 'css-loader', options: { esModule: true, sourceMap: true, importLoaders: 1, modules: { auto: true, namedExport: true, }, }, }, { loader: 'postcss-loader', options: { sourceMap: true } }, { loader: 'sass-loader', options: { sourceMap: true } }, ], }, ], }, };
4 Réponses :
Dans WebPack 5, les polyfills Node.js automatiques sont supprimés. Dans les documents de migration, il est mentionné que
Voir ce problème .
Maintenant Vous pouvez référer ce PRO et vérifier les fimesries qui ont été supprimées et les installer . Ajoutez ensuite alias pour la lib dans votre configuration webpack.
Pour ex.
module.exports = { ... plugins: [ new webpack.ProvidePlugin({ process: 'process/browser', }), ], }
Mise à jour:
Cela peut également être fait à l'aide de providePlugin
pack > Xxx
Installé le processus et essayé et pas encore de chance. Également essayé Fallback: {..., Process: require.resolve ('process') ...}
et alias: {process: 'process'}
Merci. webpack.provideplugin
fonctionne
J'ai NPM Install Process
avec le ProvidePlugin
mais je remets le module non trouvé: Erreur: Impossible de résoudre 'Process / Browser'
@Exegesis Assurez-vous de redémarrer le serveur lors de l'installation des dépendances. J'ai également fait le processus Add -D Yarn
. Pour vous npm I - Save-Dev Process
devrait fonctionner. Bon vieux rm -rf node_modules package-lock.json && npm i
devrait également être toujours essayé
Merci! Le ProvidePlugin
fonctionne bien.
Il a résolu le processus n'est pas une erreur définie, mais maintenant toute l'application explose et Console dit: `` Le navigateur n'est pas défini ''
Je me demande pourquoi se calmer
ne fonctionne pas mais provideplugin
J'ai dû utiliser process / browser.js
au lieu de process / navigateur
.
Cela peut aider quelqu'un stackoverflow.com/a/68557784/1446006
Merci.It Works. Note après avoir modifié Package.json Exécuter NPM Install.
Si vous obtenez Impossible de trouver le module 'Process / Browser'
, vous souhaiterez peut-être installer Node-Libs-Browser
J'ai ce problème pour htmlwebpackplugin, j'ai ajouté le paramètre 'templateParameters' sur htmlwebpackplugin et il a été corrigé pour moi:
new HtmlWebpackPlugin({ baseUrl: '/', template: 'app/index.html', templateParameters(compilation, assets, options) { return { compilation, webpack: compilation.getStats().toJson(), webpackConfig: compilation.options, htmlWebpackPlugin: { files: assets, options, }, process, } }, chunksSortMode: 'auto', minify: { collapseWhitespace: false, }, cache: true, }),
npm i Process
était tout ce dont j'avais besoin.
Cela a peut-être fonctionné pour vous, mais avez-vous des raisons de croire que l'installation de ce package suffit pour résoudre le problème de l'OP?
OP a déclaré que crypto-browserify
essaie d'accéder à process.browser
, de sorte qu'il n'a peut-être pas installé le package process
. A part ça, rien. Nous devons également tenir compte du fait que les personnes ayant un problème similaire seront signalées vers cette question afin que cette réponse puisse également les aider.