Webpack 需要全局参考的时刻



所以我尝试了多种方法,但无论我做什么,"时刻"都无法在全球范围内使用。非常令人沮丧。谁能在这里指出我正确的方向?

var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: {
vendor: "./app/vendor.js"
},
resolve: {
alias: {
jquery: "jquery/src/jquery",
}
},
module: {
loaders: [
{
test: /.css/,
loader: ExtractTextPlugin.extract("css-loader")
},
{
test: /.(png|jpg|gif)$/,
loader: "file-loader?name=app/img/[name].[ext]"
}
]
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
moment: "moment"
}),
new ExtractTextPlugin("app/styles.css")
],
output: {
filename: "./app/[name].bundle.js"
}
}

如果你在下面注意到,我不得不使用 window.d3 使 d3 全局可用,因为将其添加到 webpack.providerplugin 并不专门适用于 d3。 与 moment 相同,只有 window.moment 和 var moment = require 也不起作用。

window.d3 = require('d3');
require("jquery");
require('jquery-ui/ui/core');
require('jquery-ui/ui/widgets/datepicker');
require('lodash');
require('angular');
require('chosen-js');
require('chosen-js/chosen.css');
var moment = require('moment/min/moment-with-locales.js');
require('moment-timezone/builds/moment-timezone-with-data-2010-2020.js')

@Arjun — 是的,暴露加载器对我有用。谢谢!https://github.com/webpack-contrib/expose-loader

require('expose-loader?moment!moment');

最新更新