Erreur WebPack-Dev-Server: require n'est pas défini
Webpack lui-même fonctionne bien, mais le webpack-dev-server ne fonctionne pas. En gros, webpack a créé 2 fichiers de compilation pour moi, un pack back-end et un pack front-end. Donc, j'ai un webpack-config.js pour chacun de ces. Je veux développer mon code front-end avec webpack-dev-server, comme vous pouvez le voir dans mon fichier webpack-config pour mon paquet front-end.js ci-dessous. Quand j'exécute le serveur web-pack-dev, il est capable de trouver et construire mon front-end.JS et index.html, mais rien ne rend dans la console et qu'il donne-moi un "Uncaught ReferenceError: besoin n'est pas défini" les
// var nodeExternals = require('webpack-node-externals');
var webpack = require('webpack');
module.exports = {
entry: './browser/entry.js',
output: {
path: './builds',
filename: 'frontend.js'
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"development"'
}),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': '"development"'
}
})
],
module: {
loaders: [
{
test: [/.es6$/, /.js$/, /.jsx$/],
exclude: 'node_modules',
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-1']
}
},
{
test: /.json$/,
loader: 'json-loader'
},
{
test: /.html$/,
loader: 'html-loader'
},
]
},
resolve: {
extensions: ['', '.js', '.es6', '.json'],
root: '/Users/johnhenry/Desktop/GAMR/gamr/browser'
},
devServer: {
contentBase: 'builds/dev-build'
},
target: 'node',
// externals: [nodeExternals()]
}
l'erreur est déclenchée par ceci dans ma construction frontale (c'est seulement dans la construction du serveur dev, pas dans la construction webpack non-dev-server):
function(module, exports) {
module.exports = require("url");
Si quelqu'un a un aperçu de cela, il serait très apprécié
4 réponses
j'ai eu la même erreur et si quelqu'un est encore aux prises avec cela, cette solution m'a aussi aidé:
... Il y a 2 façons de résoudre le problème:
1. (Recommandé) N'activez pas webpack-node-externals dans la configuration de votre navigateur Webpack, mais laissez Webpack regrouper ces modules lorsque le ciblage du web (ce est probable ce que vous voulez faire)
- ont les modules externes chargés d'une autre manière dans le navigateur, et ajouter le drapeau importType approprié à la configuration webpack-node-externals (soit var pour les scripts ou amd pour AMD)
plus de détails ici: https://github.com/liady/webpack-node-externals/issues/17#issuecomment-284222729
j'avais la règle ci-dessous dans mon webpack.config.js
rules: [
{
test: /\.js$/,
use:['script-loader']
}
]
suppression de la règle ci-dessus de webpack.config.js a supprimé l'erreur.
Espérons que cette aide.
j'ai frappé ce numéro quand un webpack.config.js d'une application node pour la base d'une application react.
j'ai eu la suivante:
target: 'web'
, mais toujours dans le même numéro.
suppression de la référence à webpack-node-externals résolu, ce qui n'a pas de sens quand vous pensez à ce que le node-externals fait réellement.