2017-01-27 13 views
2

jQuery 3.1.1を依存関係としてインポートしようとすると問題が発生しました。 私は単純にimport {$} from 'jquery';をインポートに使用しましたが、実行時に結果のバンドルで例外TypeError: __webpack_require__.i(...) is not a functionが生成されました。 const $ = require('jquery');を使用すると、正常に動作します。 webpack 2では、ライブラリのフォーマットとは独立してes6のインポートを(ほとんど)使用することが許可されていると私は理解していました。webpack 2のAMD(例えばjQuery 3.1.1)モジュールのES6インポート

webpack.config.js:

'use strict'; 

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

function config(env) { 
    const PRODUCTION = env && typeof env.production !== 'undefined'; 

    const PLUGINS = [ 
     new webpack.DefinePlugin({ 
      DEVELOPMENT: JSON.stringify(!PRODUCTION), 
      PRODUCTION: JSON.stringify(PRODUCTION) 
     }) 
    ]; 

    if (PRODUCTION) { 
     PLUGINS.push(new webpack.optimize.UglifyJsPlugin({ 
      sourceMap: true, 
      compress: { 
       dead_code: true, 
       unused: true, 
      } 
     })); 
    } 

    return { 
     entry: { 
      index: './src/index.js' 
     }, 
     output: { 
      path: path.resolve(__dirname, 'dist'), 
      filename: '[name].js' 
     }, 
     module: { 
      rules: [ 
       { 
        test: /\.js$/i, 
        include: /src/, 
        exclude: /node_modules/, 
        use: [ 
         { 
          loader: 'babel-loader', 
          options: { 
           compact: false, 
           presets: [['es2015', {modules: false}]] 
          } 
         } 
        ] 
       } 
      ] 
     }, 
     plugins: PLUGINS, 
     devtool: 'source-map' 
    }; 
} 

module.exports = config; 

つの質問:

  • が、これはバグですか、私はそれを期待通りに動作することを意図していませんか?
  • 例外TypeError: __webpack_require__.i(...) is not a functionは一般的にどのようなエラーを示していますか?

答えて

2

私の間違い:私は、デフォルトのインポートの代わりに名前付きのインポートを使用しました。正しい

import $ from 'jquery'; 

間違っ:

import {$} from 'jquery'; 
関連する問題