2016-10-18 16 views
0

なしバックボーンをロードするために失敗します。WebPACKのは、私は次のWebPACKの設定を持っているjQueryの

module.exports = { 
    entry: "./league/index.ts", 
    output: { 
     path: "./", 
     filename: "bundle.js" 
    }, 
    resolve: { 
     // Add `.ts` and `.tsx` as a resolvable extension. 
     extensions: ["", ".ts", ".js"] 
    }, 
    module: { 
     loaders: [ 
      // all files with a `.ts` or `.tsx` extension will be handled by `ts-loader` 
      { test: /\.ts?$/, loader: "ts-loader" } 
     ] 
    } 
}; 

私はwebpackを実行すると、私は(実際のプロジェクトパスは、プライバシー保護のためPROJECT_PATHに置き換え)、このエラーが出る:

ERROR in ./~/backbone/backbone.js 
Module not found: Error: Cannot resolve module 'jquery' in PROJECT_PATH\node_modules\backbone 
@ ./~/backbone/backbone.js 17:4-21:6 

このコードの原因はbackbone.jsです。

// Set up Backbone appropriately for the environment. Start with AMD. 
    if (typeof define === 'function' && define.amd) { 
    define(['underscore', 'jquery', 'exports'], function(_, $, exports) { 
     // Export global even in AMD case in case this script is loaded with 
     // others that may still expect a global Backbone. 
     root.Backbone = factory(root, exports, _, $); 
    }); 

    // Next for Node.js or CommonJS. jQuery may not be needed as a module. 
    } else if (typeof exports !== 'undefined') { 
    var _ = require('underscore'), $; 
    try { $ = require('jquery'); } catch (e) {} 
    factory(root, exports, _, $); 

    // Finally, as a browser global. 
    } 

jQueryは私が必要とする依存関係ではありませんが、webpackは、requireコールを必要としていると解釈しています。

答えて

1

バックボーンはjQueryに依存しますが、zeptoのようなjQueryに似た別のモジュールを使用する場合は、別名としてjqueryを付ける必要があります。 Backbone wikiから

:WebPACKの、resolve.alias設定オプションを使用して

を使用することができます。

{ 
    context: __dirname + "/app", 
    entry: "./entry", 
    output: { 
     path: __dirname + "/dist", 
     filename: "bundle.js" 
    } 
    resolve: { 
     alias: { 
      "jquery": "zepto" 
     } 
    } 
} 
関連する問題