jquery - Webpack 是否足够智能,可以让 jQuery 变得更轻?

标签 jquery reactjs webpack

我知道这是一个非常简单的问题,但我还没有看到任何像这样简单的问题/答案。我正在尝试确定 jQuery 是否值得保留在我的 React 应用程序中,并且我几乎完全将它用于 ajax。 webpack 是否足够智能,可以仅在 bundle 中包含 jQuery 的 ajax 部分?

最佳答案

不,webpack 不仅会在您的包中包含 jquery 的 ajax 部分,即使您使用的是 Webpack 2(webpack 1 及之前的版本不实现树摇动;也就是说,整个模块将包含在您的包中,而不仅仅是您导入的那些)这是因为 jquery 在 NPM 中的销售方式:作为一个大型 jquery.js 模块。

如果您打算使用 jquery,有一些方法可以仅使用 ajax 模块构建 jquery,但这需要一些手动操作(例如,您不能只执行 import {ajax} from 'jquery' )。 lodash 有一个 babel 插件,它在自己的模块中提供每个方法,因此您不必在 webpack 构建中包含所有 lodash。它是一个 babel 插件,因为它依赖于 import { some_method } from 'library' 语法。

如果您正在寻找一个简单的ajax库,我强烈建议使用isomorphic-fetch (在浏览器中,仅使用“whatwg-fetch”)。它使您的代码非常整洁。

关于jquery - Webpack 是否足够智能,可以让 jQuery 变得更轻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514342/

相关文章:

css - 使用 vuetify 开发和生产之间的 #app css 不同

javascript - 找到所有的 onclick 属性并为它们附加一个值

javascript - 错误 : Cannot resolve module 'babel-loader'

javascript - window.print() 不会在 iPAD 中弹出 PDF 打印对话框

javascript - 如何从 HTML 调用和形成 React.js 函数

javascript - 清除 React 组件中来自父级或祖级组件的输入

reactjs - 如何将react-hooks、redux和typescript结合在一起?

Angular 6 : Failed to compile: Can't resolve 'stream' in ./node_modules/hash-base

javascript - jQuery:IF 语句中的 addClass 不切换

jQuery跨域请求响应头