如何在没有模块

时间:2016-08-12 08:43:40

标签: jquery webpack

我正在使用 Webpack + Gulp 来开发网站。

我使用Webpack捆绑前端的所有JavaScript,并且我做得很好。

但后端曾经使用<script src="jquery.js">来使用jQuery库。

不使用<script src="jquery.js">,后端不能使用捆绑的javascript中的'jQuery'或'$'。

例如。

./ dev的/ index.html中

...
script(src='js/app.js') // bundled file, jQuery's inside
script(src='js/backend.js')

./开发/ JS / app.js'

$('body').css('color', '#FFF');

./开发/ JS / backend.js'

$('body').css('color', '#000');

webpack.config

const path = require('path');
const webpack = require('webpack');

module.exports = {
  entry: {
    app: 'js/app',
  },
  output: {
    path: `${__dirname}/build`,
    filename: '[name].js',
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel',
      },
    ],
  },
  stats: {
    children: false,
  },
  resolve: {
    root: [
      path.resolve(__dirname, 'dev'),
      '../node_modules',
      '../plugins',
      '../global_utils',
    ],
    modulesDirectories: ['node_modules'],
    extensions: ['', '.js'],
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery',
      'root.jQuery': 'jquery',
    }),
  ],
};

app.js运作完美。

但错误'$未定义。'在执行backend.js时发生。

有没有办法让backend.js可以使用'$'?

感谢。

0 个答案:

没有答案