使用Webpack 4时如何访问条目文件中的jQuery对象($)?

时间:2018-09-02 19:20:33

标签: jquery webpack-4

我有一个非常简单的Webpack 4示例,在该示例中,我试图访问条目文件中的jQuery对象以操作DOM。我已经将其缩减为我认为已广泛研究的最低要求。

我希望该示例在页面加载时将body的背景色设置为青色。似乎无法让它做任何事情。看起来条目文件中显示的$变量与浏览器中的$变量不同

更新-问题已解决:我在下面误用了jQuery

原始(有缺陷的)条目文件(src/app.js):

import 'jquery';

$(() => {
  $('body').bgColor = 'cyan';
});

已更正的条目文件:

import 'jquery';

$(() => {
  $('body').css('background-color', 'cyan');
});

我使用here中记载的ProvidePlugin。这是我简单的webpack.config.js文件:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require("webpack");

module.exports = {
  entry: {
    app: './src/app.js',
  },
    output: {
      filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery'
      }),
      new HtmlWebpackPlugin()
    ],
    devtool: 'inline-source-map'
}

Webpack编译正常,并且页面打开(使用webpack-dev-server),但是背景颜色未如预期的那样变为青色。当我在$('body')文件中记录app.js的值时,得到undefined

这是package.json文件:

{
  "name": "foo",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "start": "webpack-dev-server --inline --open"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "html-webpack-plugin": "^3.2.0",
    "webpack": "^4.16.5",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  },
  "dependencies": {
    "jquery": "^3.3.1"
  }
}

感觉就像我对应该如何工作基本缺乏了解。谢谢。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

道歉。我误用jQuery的错误。感谢@charlietfl指出我在评论中的错误。我用了。 $('body').bgColor = "cyan",而不是$('body').css('background-color', 'cyan')。其他所有内容均已正确配置。因此,如果您需要一个简单的示例,就在这里。

我将编辑问题并指出我的错误。