您好,我正在尝试使用webpack。 我制作了一个捆绑包和一个供应商捆绑包。 在供应商包中,我现在只有jquery。
尝试在我的包中调用jquery时,一切正常。 但是我在头部内部制作了一个脚本标签并尝试将其称为“#34; $未定义"如果我尝试使用" jQuery"
Webpack.config.js
var webpack = require('webpack');
var autoprefixer = require('autoprefixer');
var precss = require('precss');
var rucksackCss = require('rucksack-css');
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
// var node_modules_dir = path.resolve(__dirname, 'node_modules');
module.exports = {
entry: {
app: "./src/bundle.js",
vendor: ['jquery', 'gsap']
},
output: {
path: __dirname + '/dist',
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.css$/,
loader: "style-loader!css-loader!postcss-loader"
}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"vendor", /* filename= */"vendor.bundle.js"),
new BrowserSyncPlugin({
host: 'localhost',
port: 3000,
proxy: "mod.dev",
files: ["dist/*js", './**/*.php']
// server: { baseDir: ['public'] }
}),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
],
postcss: function () {
return [autoprefixer, precss, rucksackCss];
}
};

我缺少什么?
答案 0 :(得分:0)
我认为您需要公开jQuery,以便使用expose-loader在窗口中显示它:
module: {
loaders: [
{ test: require.resolve("jquery"), loader: "expose?$!expose?jQuery" },
]
}