2015-12-01 14 views
11

मैं angular, localForage और angular-localForagewebpack के साथ इकट्ठा करने की कोशिश कर रहा हूं। , की आवश्यकता होती है मेरी फाइल इस तरह दिखता हैवेबपैक के साथ कोणीय और स्थानीय फोरम का उपयोग

// Angular libs 
require('../bower_components/angular/angular.min.js') 
require('../bower_components/angular-resource/angular-resource.min.js') 
require('../bower_components/angular-ui-router/release/angular-ui-router.min.js') 
require('../bower_components/angular-bootstrap/ui-bootstrap.min.js') 
require('../bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js') 

require('../bower_components/localforage/dist/localforage.min.js') 
require('../bower_components/angular-localforage/dist/angular-localForage.js') 

angular-resource, angular-ui-router और ui-bootstrap ठीक काम किया, लेकिन जब मैं आवश्यकता angular-localForage चीजें जटिल पाने के लिए शुरू कर दिया। मेरे webpack.config.js दिखता है इस तरह,

var path = require('path') 

module.exports = { 
    entry: "./src/app/app.js", 
    output: { 
     path: './src/assets', 
     filename: "bundle.js", 
     publicPath: 'assets/' 
    } 
    , module: { 
     loaders: [ 
      {test: /\.less$/, loader: "style!css!less"}, 
      {test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'}, 
      {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'}, 
      {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'}, 
      {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'} 

     ] 
    } 
    , resolve: { 
     root: [ path.resolve('./src/bower_components') ] 
     , moduleDirectories: ['./src/bower_components'] 
    }  
}; 

जब मैं अनुप्रयोगों को चलाने, कंसोल पर मैं यह त्रुटि

Uncaught TypeError: Cannot read property 'module' of undefined 

कौन सा angular-localForage कोड की पंक्ति 1 में होता है

'use strict'; 

1: var angularLocalForage = angular.module('LocalForageModule', ['ng']); 
2: angularLocalForage.provider('$localForage', function() { 
3: var lfInstances = {}, 

इस साधन को देखने के कि angular उस दायरे में प्रवेश नहीं कर रहा है। मैंने imports-loader और exports-loader के साथ कोई सफलता नहीं की है।

कोई विचार यह कैसे किया जाना चाहिए?

उत्तर

5

ऐसा इसलिए होता है क्योंकि कोणीय-स्थानीय फोरेज "यह" वैश्विक क्षेत्र (खिड़की) होने की अपेक्षा करता है।

require("imports?this=>window!angular-localforage/dist/angular-localForage.js") 

इस कोड को आयात-लोडर NPM मॉड्यूल पर निर्भर करता है इसलिए चलाएं:

npm install imports-loader 

मैं भी इसे सही ढंग से localforage को हल करने के लिए webpack के लिए कुछ config को शामिल किया है मैं इसे कोड के साथ काम बना दिया है:

var path = require('path') 

    module.exports = { 
     entry: "./app.js", 
     output: { 
      path: './', 
      filename: "bundle.js", 
      publicPath: '/' 
     } 
     , module: { 
      loaders: [ 
       {test: /\.less$/, loader: "style!css!less"}, 
       {test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'}, 
       {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'}, 
       {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'}, 
       {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'}, 
       { 
        include: [ 
         path.resolve(__dirname, "bower_components/localforage") 
        ], 
        //Export localforage var 
        loader: 'exports-loader?localforage' 
       } 
      ] 
      //Don't parse 'require' inside localforage because wepack can't resolve it coorectly 
      , noParse: /localforage\./ 
     } 
     , resolve: { 
      root: [ path.resolve('./bower_components') ] 
      , moduleDirectories: ['./bower_components'] 
      , alias: { 
       //Make webpack to load compiled version, not source. 
       'localforage': 'localforage/dist/localforage.js' 
      } 
     } 
    }; 

तुम भी localforage की आवश्यकता के लिए मैन्युअल रूप से इसे जब कोणीय localForage पार्स किया जाएगा जोड़ दिया जाएगा जरूरत नहीं है।

+0

क्या आप सुनिश्चित हैं कि यह समस्या हल करता है? जब मैं आपके समाधान का उपयोग करता हूं, 'कोणीय-स्थानीय फोरेज' मुझे फेंकता है 'त्रुटि: मॉड्यूल' स्थानीय फोरेज 'को हल नहीं कर सकता। मैं 'स्क्रिप्ट' लोडर के साथ इस पर काम करता हूं, 'आवश्यकता' ('स्क्रिप्ट! .. कोणीय-स्थानीय फोरेज') '। – mariowise

+0

मैंने अपने वेबपैक कॉन्फ़िगरेशन के साथ अपना जवाब अपडेट कर दिया है। सुनिश्चित नहीं है कि मेरा समाधान सबसे अच्छा है लेकिन कम से कम यह वैश्विक दायरे में मॉड्यूल के कोड को निष्पादित नहीं करता है। –

संबंधित मुद्दे