javascript - 请问在webpack2中使用expose-loader的正确姿势
本文介绍了javascript - 请问在webpack2中使用expose-loader的正确姿势的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
这两天试着把我的脚手架项目webpack-seed升级到webpack2,发现了一个问题:我用来兼容jquery插件的expose-loader在webpack2的环境下报错了。
由于expose-loader最近并未更新,所以更别提更新官方文档了,github上放着的还是webpack1时的示例代码,所以我是这么用的:
{
test: require.resolve('jquery'),
loader: 'expose-loader?$',
options: {
$: true,
},
},
然后编译打包的时候就报了如下的错误:
ERROR in ./~/jquery/dist/jquery.js
Module build failed: TypeError: this.query.substr is not a function
at Object.module.exports.pitch (I:\XAMPP\htdocs\webpack-seed\node_modules\expose-loader\index.js:26:34)
@ ./src/pages/alert/index/page.js 1:0-17
感觉上是loader的参数没能传得进去,因此敢问各位大兄弟,可有成功在webpack2环境下使用expose-loader的?
另外附上webpack1的用法:
{ test: require.resolve("jquery"), loader: "expose-loader?$!expose-loader?jQuery" },
这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义
解决方案
试试这么写, 在我工程里好用的:
module: {
rules: [
{
test: /\.less$/,
use: Extract.extract({fallbackLoader: 'style-loader', loader: ["css-loader", "less-loader"]})
},
{test: require.resolve("jquery"), use: "expose-loader?$"},
{test: require.resolve("jquery"), use: "expose-loader?jQuery"},
{test: require.resolve("react"), use: "expose-loader?React"},
{test: require.resolve("react-dom"), use: "expose-loader?ReactDOM"},
{test: require.resolve("underscore"), use: "expose-loader?_"}
]
}
这篇关于javascript - 请问在webpack2中使用expose-loader的正确姿势的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文