Webpack库未定义

时间:2015-09-27 07:13:20

标签: webpack

您好,我正在尝试使用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];
    }
};




我缺少什么?

1 个答案:

答案 0 :(得分:0)

我认为您需要公开jQuery,以便使用expose-loader在窗口中显示它:

module: {
  loaders: [
    { test: require.resolve("jquery"), loader: "expose?$!expose?jQuery" },
  ]
}