2015-09-10 11 views
8

non riesco a un'istanza di un controllo a causa di questo errore, dice:karma + gelsomino + webpack: il modulo non è una funzione

  • modulo non è una funzione

quale modulo si dovrebbe fare è lo pseudonimo di angular.mock, ma la mia domanda è:

Può essere che il modulo venga riscritto ma il modulo da webpack? (module.exports)

Questo è il mio karma.config.js di file:

/*global __dirname*/ 
// Karma configuration 

var path = require('path'); 
var webpackConfig = require('./webpack.config'); 

module.exports = function(config) { 
config.set({ 

     // base path that will be used to resolve all patterns (eg. files, exclude) 
     basePath: __dirname, 

     // frameworks to use 
     // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 
     frameworks: ['jasmine'], 

     // list of files/patterns to load in the browser 
     files: [ 
      'src/Bundle/Resources/assets/base/base.js', 
      'src/**/*.spec.js' 
     ], 

     // list of files to exclude 
     exclude: [], 

     // preprocess matching files before serving them to the browser 
     // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
     preprocessors: { 
      'src/Bundle/Resources/assets/base/base.js': ['webpack'], 
      'src/**/*.spec.js': ['webpack'] 
     }, 

     // test results reporter to use 
     // possible values: 'dots', 'progress' 
     // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
     reporters: ['progress'], 

     // web server port 
     port: 9876, 

     // enable/disable colors in the output (reporters and logs) 
     colors: true, 

     // level of logging 
     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
     logLevel: config.LOG_INFO, 

     // enable/disable watching file and executing tests whenever any file changes 
     autoWatch: true, 

     // start these browsers 
     // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
     browsers: ['Chrome'], 

     // Continuous Integration mode 
     // if true, Karma captures browsers, runs the tests and exits 
     singleRun: false, 

     plugins: [ 
      require('karma-jasmine'), 
      require('karma-chrome-launcher'), 
      require('karma-webpack') 
     ], 

     webpack: { 
      module: { 
       loaders: webpackConfig.module.loaders 
      }, 
      resolve: { 
       alias: webpackConfig.resolve.alias 
      }, 
      plugins: webpackConfig.plugins 
     } 
}); 
}; 
+0

È possibile specificare anche il codice del controller? Quando ottieni l'errore "modulo non è una funzione", quale linea sta causando questo, la configurazione del webpack o qualche altra posizione nel codice del tuo progetto? Per favore aggiungi un po 'più di chiarezza. –

+0

Questo non ha nulla a che fare con qualsiasi codice controller, ma con configurazione. Per favore, se hai un problema più specifico, prova a risolvere una domanda diversa (posso darti una mano se vuoi) perché questo non ha alcuna relazione con il tuo caso e la domanda ha già una risposta. –

+0

La riga 'module.exports = function (config) {' quella che causa il problema che hai segnalato qui? –

risposta

21

realtà era webpack tuute riscrive modulo (angular.mock.module) a (module.exports), allora la soluzione non sta usando il alias. Utilizzare direttamente la funzione angular.mock in questo modo:

angular.mock.module() 
+0

Hai per caso un repository che mostra tutto questo lavorando insieme? – JimTheDev

+0

Scusate, è nei repository della mia compagnia, ma scriverò per mostrarvi un esempio :) –

+1

Questo funziona, ma a chi ha votato questa soluzione, potreste disturbarvi a condividere un'alternativa ?? –

Problemi correlati