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é

7
demandé sur Lorentz9 2016-09-13 02:45:43

4 réponses

essayez d'ajouter:

target: 'web'

à votre module.

5
répondu user1695975 2016-09-21 01:11:45

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)

  1. 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

1
répondu Claudia Dávila 2017-05-11 18:55:54

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.

0
répondu Dheeraj Kumar 2018-03-28 12:36:10

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.

0
répondu Liam 2018-08-09 14:47:55