gpt4 book ai didi

javascript - 尝试使用 webpack 要求部分 jquery

转载 作者:搜寻专家 更新时间:2023-11-01 04:53:53 25 4
gpt4 key购买 nike

我是using this article仅导入我需要的 jquery 部分。

但是,我在使用这段代码时遇到了一个问题:

let $ = require('jquery/src/core');
require('jquery/src/core/init');
require('jquery/src/css');
console.log($);

我收到这个错误:

ERROR in ./~/jquery/src/selector-sizzle.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../external/sizzle/dist/sizzle in /home/vamsi/Do/highland-fun/bacon-form/node_modules/jquery/src
@ ./~/jquery/src/selector-sizzle.js 1:0-14:3

这是我的 webpack.config.js 文件:

module.exports = {
entry:'./app',
output:{
filename:'./bundle'
},
modules:{
loaders:[
{
test:/jquery[\\\/]src[\\\/]selector\.js$/,
loaders:['amd-define-factory-patcher-loader']
}
]
}
}

我尝试使用 resolve.alias 来解决这个问题:

resolve:{                                                                
alias:{
'../external/sizzle/dist/sizzle':'./node_modules/sizzle/dist/sizzle.js'
}
}

但它仍然会抛出与之前相同的错误。

最佳答案

问题

I am using this article to import only the parts of jquery that I would need.

这篇文章是在 jquery 2.2.0 发布之前写的。

jquery 2.1.x 中:

// jquery/src/selector-sizzle.js

define([
"./core",
"sizzle"
], function( jQuery, Sizzle ) {
//...
})

所以sizzle解析为 <base-dir>/node_modules/sizzle

但是在 jquery 2.2.x 中:

// jquery/src/selector-sizzle.js

define([
"./core",
"../external/sizzle/dist/sizzle" // <- missing
], function( jQuery, Sizzle ) {
//...
})

如果你看<base-dir>/node_modules/jquery你会看到 <base-dir>/node_modules/jquery/external不见了。此目录存在于 jquery 存储库中,但在 jquery npm 包中被忽略。

解决方案

不幸的是,我没能用 webpack 的 resolve.alias 解决这个问题以任何方式。或者,这些解决方案之一也适合您:

  • 使用 jquery 2.1.4 -> "jquery": "~2.1.4"
  • 继续使用 jquery 2.2.x 并使用 string-replace-loader作为替换 "../external/sizzle/dist/sizzle" 的预加载器与 "sizzle" :

npm i string-replace-loader --save-dev

// webpack.config.js

module.exports = {
//...
module: {
preLoaders: [{
test: /jquery[\\\/]src[\\\/]selector-sizzle\.js$/,
loader: 'string-replace',
query: {
search: '../external/sizzle/dist/sizzle',
replace: 'sizzle'
}
}]
}
//...
};

注意:在这两种解决方案中,您都必须 npm i sizzle --save

关于javascript - 尝试使用 webpack 要求部分 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35877475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com