2016-03-31 8 views
0

Hier ist meine webpack config:Webpack mit requirejs und Backbone-Fehler aus Browser

{ 
    entry: './public/static/js/app/app.js', 
    output: { 
     path: './public/static/dist/js/', 
     filename: 'app-compiled.js', 
     pathinfo: true 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /public\/static.*\.js$/, 
       loader: 'babel-loader', 
      }, 
      { 
       test: /\.html$/, 
       loader: 'raw' 
      }, 
     ], 
    }, 
    plugins: [ 
     new webpack.dependencies.LabeledModulesPlugin() 
    ], 
    resolveLoader: { 
     alias: { 
      'text': 'raw', 
     }, 
     root: ['./public/static/js/app'] 
    }, 
    resolve: { 
     extensions: ['', '.js'], 
     root: [ 
      path.resolve('./public/static/js/app'), 
     ], 
     modulesDirectories: ['node_modules'], 
     alias: { 
      'backbone': path.resolve('./public/static/js/lib/backbone.js'), 
      'backbone.relational': path.resolve('./public/static/js/lib/backbone-relational.js'), 
      'backbone.wreqr': path.resolve('./public/static/js/lib/backbone.wreqr.min.js'), 
      'marionette': path.resolve('./public/static/js/lib/marionette.js'), 
      'text': path.resolve('./public/static/js/lib/text.js'), 
      'smoke': path.resolve('./public/static/js/lib/smoke.js'), 
      '_': path.resolve('./public/static/js/lib/underscore.js'), 
      'underscore.inflection': path.resolve('./public/static/js/lib/underscore.inflection.js'), 
      'chosen': path.resolve('./public/static/js/lib/chosen.js'), 
      'spin': path.resolve('./public/static/js/lib/spin.min.js'), 
      'uuid': path.resolve('./public/static/js/lib/uuid-v4.min.js'), 
      'ladda': path.resolve('./public/static/js/lib/ladda.min.js'), 
      'jquery': path.resolve('./public/static/js/lib/jquery.js') 
     } 
    }, 
    debug: true, 
    devtool: 'sourcemap', 
}; 

Das Problem, das ich im Browser root is undefined ist bin zu sehen. Der kompilierte Code, der das liest, ist var previousBackbone = root.Backbone;

+1

Ein ähnliches Problem - in derselben Zeile, verschiedene Fehler ("main.js: 5484 Uncaught Typeerror: kann Eigenschaft 'Backbone' undefinierten lesen"). Haben Sie schon eine Lösung gefunden? –

Antwort

0

Sie sollten Babel nicht benötigen, um Knotenknoten wie Backbone zu transpilieren. Wir möchten, dass Webpack das vordefinierte JavaScript in einem gegebenen npm-Paket verwendet. Ich nehme an, dass Babel bei Backbone einige Optimierungen vornimmt, was nicht der Fall sein sollte. Um node_modules auszuschließen, fügen Sie eine Ausschlusseigenschaft zu Ihrem Babelloader hinzu, z.

{ 
    test: /public\/static.*\.js$/, 
    exclude: /node_modules/, 
    loader: 'babel-loader', 
}