2017-07-09 3 views
4

ではありません - エラーは次のとおりです。私はこのエラーがから来ているモジュールを見つけ出すことはできませんのWebPACKは、必要が私のWebPACKの内蔵アプリに反応実行しているときにエラーを取得する機能

webpack-internal:///1495:3 
var crypto = require('crypto'); 
      ^

TypeError: require is not a function 
    at eval (webpack-internal:///1495:3:14) 
    at Object.<anonymous> (/path/to/project/build/main.js:9739:1) 
    at __webpack_require__ (/path/to/project/build/main.js:21:30) 
    at eval (webpack-internal:///1494:1:20) 
    at Object.<anonymous> (/path/to/project/build/main.js:9733:1) 
    at __webpack_require__ (/path/to/project/build/main.js:21:30) 
    at eval (webpack-internal:///692:8:18) 
    at Object.<anonymous> (/path/to/project/build/main.js:4515:1) 
    at __webpack_require__ (/path/to/project/build/main.js:21:30) 
    at eval (webpack-internal:///1491:12:23) 

。私は、このコマンドで自分のプロジェクトを実行しています:ここで

NODE_ENV=development nodemon --watch build/ build/main.js 

は私のWebPACKの設定です:

const path = require('path') 
const fs = require('fs') 
const webpack = require('webpack') 

const webpackConfig = { 
    context: path.join(__dirname, '..'), 
    entry: ['babel-polyfill', path.join(__dirname, '../src/entry.js')], 
    target: 'node', 
    output: { 
    path: path.resolve(__dirname, '../build'), 
    publicPath: '/', 
    libraryTarget: 'commonjs2', 
    filename: 'main.js' 
    }, 
    resolve: { 
    modules: [ 
     path.join(__dirname, '../src'), 
     path.join(__dirname, '../server'), 
     'node_modules' 
    ], 
    extensions: ['.js', '.jsx', '.json'] 
    }, 
module: { 
    rules: [ 
     { 
     test: /\.js$/, 
     exclude: /node_modules/, 
     loader: 'babel-loader' 
     }, 
     { 
     test: /\.(png|gif|jpe?g|ico|eot|svg|ttf|woff2?)$/, 
     loader: 'file-loader', 
     options: { 
      context: 'src/app/assets/', 
      outputPath: 'dist/', 
      name: '[path][name].[ext]?[hash]', 
      //limit: 10000 
     } 
     } 
    ] 
    }, 
    node: { 
    net: 'empty', 
    tls: 'empty', 
    dns: 'empty', 
    fs: 'empty', 
    mysql: 'empty', 
    __dirname: true 
    }, 
    plugins: [ 
    // hot reload new webpack.HotModuleReplacementPlugin(), 
    new webpack.IgnorePlugin(/webpack-stats\.json$/), 
    new webpack.DefinePlugin({ 
     'process.env': { 
     NODE_ENV: JSON.stringify('development'), 
     API_HOST: JSON.stringify(process.env.API_HOST), 
     API_PORT: JSON.stringify(process.env.API_PORT) 
     }, 
    }), 

    ], 
    externals: ['mysql', 'bindings'] 
} 

if (process.env.NODE_ENV === 'development') { 
    webpackConfig.devtool = 'eval-source-map' 
} 

module.exports = webpackConfig 

ファイルは、このコマンドを使用して構築されている:

./node_modules/.bin/webpack --display-error-details --config webpack/webpack.config.js 

のWebPACKのバージョンIは、 3.0.0を使用しています。

+0

なぜあなたは 'nodemon'でアプリを実行していますか? –

+0

代わりに何をお勧めしますか?私はwebpack-dev-serverを使ってそれを走らせることができますが、私のプロジェクトには必ずしも必要ではありません。とにかくビルドファイルに問題があるようです。私が間違っているなら私を正してください - 私はここでは初心者ではなく、専門家ではないとは言いません。 –

+0

'webpack-dev-server'を使って、開発中にカスタムコードを使うよりも良いオプションとしてコードを実行します。私のプロジェクトでは、 'webpack'コマンドはプロダクションで使用されるコードに対してのみ使用します。また、 'main.js'はwebpackで構築し、それをnodemonで実行する方法でも動作しますが、エクスプレスなどのサーバーで使用していますか? –

答えて

0

バンドル内にまだrequireがある場合は、Babelによって一部のES6ファイルが転送されていないことを意味します。

私はあなたがbabel-loaderからnode_modulesが排除されていることを見ることができます...

あなたは除外を削除しようとすると、それはどんな方が良いですかどうかを確認することはできますか?

また、すべてのファイルarborescenceで「require( 'crypto')」を検索できますか?

最後に、あなたはそれが反応するアプリだがbabel-loaderのみ.jsファイルではなく、.jsxをtranspilesと言う...あなたは、ローダのtest/\.jsx?$/にを変更してみてくださいことはできますか?

関連する問題