我正在尝试通过 Webpack ProvidePlugin 在全局范围内使用 Underscore,但是它无法识别 Underscore,并且在控制台中出现以下错误。
VM43994:1 Uncaught ReferenceError: _ is not defined(…)
我正在我的 index.js 中导入 Underscore(现在我使用的是供应商包,也许不需要这个?),我的 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'] }),
];
},
};
最佳答案
多一点调查和 this seems to work
{
plugins: [
new webpack.ProvidePlugin({
_: 'underscore'
})
]
}
同样在您的 TS 文件中,您可以添加
window['_'] = require('underscore')
关于javascript - Webpack 提供插件以供全局使用 Underscore - 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37997137/