2016-06-23 1 views
3

Я пытаюсь использовать подчеркивание по всему миру через Webpack ProvidePlugin, однако он не распознает подчеркивание, а в консоли я получаю следующую ошибку.Webpack Provide Plugin для глобального использования Underscore - Ошибка

VM43994:1 Uncaught ReferenceError: _ is not defined(…) 

Я ввожу подчеркнуть в моем index.js (возможно, это не нужно сейчас я использую связку поставщика?), И мой WebPack конфигурация, как показано ниже. На одном этапе я подумал, что у меня это работает (прежде чем делать пакет поставщиков), однако теперь я думаю, что, возможно, ошибся, поскольку, по-моему, я пробовал все проспекты, которые я пробовал раньше. Любая помощь будет принята с благодарностью.

const webpack = require('webpack'); 
const path = require('path'); 
const precss = require('precss'); 
const autoprefixer = require('autoprefixer'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 
const postcssImport = require('postcss-import'); 

module.exports = { 

    context: __dirname + '/frontend', 
    devtool: 'source-map', 
    entry: { 
    app: './index.js', 
    vendor: ['underscore'], 
    }, 
    output: { 
    filename: 'bundle.js', 
    path: path.join(__dirname, './static'), 
    }, 
    module: { 
    loaders: [ 
    { test: /\.js$/, loader: 'babel', exclude: /node_modules/, query: { presets: ['es2015'] } }, 
    { test: /\.css$/, loader: ExtractTextPlugin.extract('style', 'css?sourceMap&importLoaders=1!postcss') }, 
    ], 
    }, 
    plugins: [ 
    new ExtractTextPlugin('si-styles.css'), 
    new webpack.ProvidePlugin({ underscore: 'underscore' }), 
    new webpack.optimize.CommonsChunkPlugin(/* chunkName= */'vendor', /* filename= */'vendor.bundle.js', Infinity), 
    ], 
    postcss: function(webpack) { 
    return [ 
     postcssImport({ addDependencyTo: webpack }), // Must be first item in list 
     precss, 
     autoprefixer({ browsers: ['last 2 versions'] }), 
    ]; 
    }, 

}; 
+0

Любая удача выяснить это? У меня такая же проблема. – Jackie

ответ

3

Побольше исследования и this seems to work

{ 
    plugins: [ 
     new webpack.ProvidePlugin({ 
      _: 'underscore' 
     }) 
    ] 
} 

Также в вашем TS файл вы можете добавить window['_'] = require('underscore')

 Смежные вопросы

  • Нет связанных вопросов^_^