项目中有依赖jquery和jquery插件的情况,使用webpack加载这些包,让程序正常运行。
jquery
项目中重度依赖jquery,我们需要将jquery暴露给全局对象(self
、window
和global
)。
使用expose-loader
可以使用expose-loader
插件。
首先安装expose-loader
:
1 | npm install -D expose-loader |
然后在webpack.config.js
中:
1 | module.exports = { |
这样我们可以在用到jquery的地方直接:
1 | import $ from 'jquery'; |
使用ProvidePlugin
可以查看webpack插件文档:webpack ProvidePlugin
但是我们jquery很多地方使用,每个地方都写这个导入语句是很难受的,那么我们可以使用webpack.ProvidePlugin
来将jquery自动加载。
1 | module.exports = { |
这样可以不需要import
语句,jquery是自动加载到全局的,我们可以直接使用:
1 | $('div').text(33); // OK |
jquery插件
解决了jquery,还有头疼的jquery插件。
jquery是$()
,那么jquery插件是$().xxx()
。也不能直接import,还得找解决方案。
安装:
1 | npm install -D imports-loader |
然后在webpack.config.js
:
1 | module.exports = { |
因为很多模块在使用CommonJS
前会进行define
函数的检查,这里var define = false
是为了禁用AMD
。
然后我们在使用jquery插件的地方:
1 | require('datatables.net'); |
这样可以正常运行。
老代码的升级很头疼,还得慢慢摸索。