使用Webpack4时,如何访问条目文件中的jQuery对象($)?
我有一个非常简单的Webpack4示例,其中我试图访问输入文件中的jQuery对象,以便操作DOM。经过广泛的研究,我已经把它缩减到我认为是最低限度的了 我希望示例在页面加载时将使用Webpack4时,如何访问条目文件中的jQuery对象($)?,jquery,webpack-4,Jquery,Webpack 4,我有一个非常简单的Webpack4示例,其中我试图访问输入文件中的jQuery对象,以便操作DOM。经过广泛的研究,我已经把它缩减到我认为是最低限度的了 我希望示例在页面加载时将主体的背景色设置为青色。似乎什么都做不了。看起来条目文件中公开的$变量与浏览器中的$变量不同 更新-问题已解决:我误用了下面的jQuery 原始的(有缺陷的)条目文件(src/app.js): 已更正条目文件: import 'jquery'; $(() => { $('body').css('backgro
主体的背景色设置为青色。似乎什么都做不了。看起来条目文件中公开的$
变量与浏览器中的$
变量不同
更新-问题已解决:我误用了下面的jQuery
原始的(有缺陷的)条目文件(src/app.js
):
已更正条目文件:
import 'jquery';
$(() => {
$('body').css('background-color', 'cyan');
});
我使用文档中的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'
}
{
"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"
}
}
Webpack编译得很好,页面打开(使用Webpack dev server
),但背景色没有像预期的那样变为青色。当我在app.js
文件中记录$('body')
的值时,我得到了未定义的
以下是package.json
文件:
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'
}
{
"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"
}
}
我觉得我根本不明白这是怎么回事。谢谢非常感谢您的帮助。非常抱歉。我误用jQuery的错误。感谢@charlietfl在评论中指出我的错误。我用过$('body').bgColor=“cyan”
而不是$('body').css('background-color','cyan')
。其他一切都已正确配置。如果你需要一个简单的例子,这里就是
我将编辑问题并指出我的错误。jQuery对象没有影响元素的bgColor
属性。使用css()
方法或访问本机元素$('body')[0]
Yes@charlietfl,谢谢。我的错。将jQuery调用更改为使用css()
函数,一切正常。一线希望-有一个简单的例子,其他人可以使用。我将发布答案并将此代码放在Github的某个地方。