You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目引入jQuery仍报'$' is not defined错误求助

Fixing the "'$' is not defined" Error in React When jQuery is Loaded in index.html

Hey there, I get it—you’ve loaded jQuery in your index.html but still can’t access $ in your React modules. This is a super common quirk thanks to how module bundlers like Webpack handle scope. Let’s walk through a few solid fixes:

1. Explicitly Reference the Global Window Object

Since jQuery attaches itself to the global window object when loaded via index.html, you can pull it into your module directly from there:

// At the top of your component file
const $ = window.$;

// Now use $ like you normally would
$(document).ready(() => {
  // Your jQuery logic here
});

If you’re using ESLint and getting linting errors, add this comment at the top of the file to let it know $ is a global:

/* global $ */

2. Use Webpack’s ProvidePlugin to Auto-Inject jQuery

If your React setup uses Webpack (most do), you can configure it to make $ available in every module automatically—no need to import or reference window each time.

First, install jQuery as a project dependency (Webpack needs it in your node_modules for this to work):

npm install jquery --save

Then open your webpack.config.js and add the ProvidePlugin to the plugins array:

const webpack = require('webpack');

module.exports = {
  // ... your existing config settings
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery'
    })
  ]
};

Now $ will be available in all your React components without extra setup.

3. Import jQuery Directly in Modules

The cleanest modular approach is to import jQuery only in the components that actually need it. First install the dependency:

npm install jquery --save

Then in your component file:

import $ from 'jquery';

// Use $ freely
$('.target-element').fadeIn();

This makes your component’s dependencies explicit, which is great for maintainability.

Quick Why This Happens

React projects use module bundlers that isolate each module’s scope. Even though jQuery lives on the global window after being loaded in index.html, modules don’t automatically inherit global variables—you have to explicitly bridge that gap with one of the methods above.


内容的提问来源于stack exchange,提问作者Sahand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:33:49