gpt4 book ai didi

jquery - webpack无法解析 'jquery'

转载 作者:行者123 更新时间:2023-12-03 22:35:17 24 4
gpt4 key购买 nike

嗨,我是 Webpack 的新手,目前我正在将此工具添加到我的项目中,在捆绑(webpack ...)依赖于 jquery 的库期间,我收到如下错误:

Error: Can't resolve 'jquery' in 'C:\some_folder'

我在互联网上浏览了类似的帖子,但没有产生积极的效果。人们建议使用不同的方法,例如: - 解析.别名 - 插件ProvidePlugin

我使用 webpack 3.3.0,在我的项目中 jQuery 通过 脚本标签 在 vendor 捆绑脚本之前以正常方式加载。大多数 vendor 库(包括 jQuery)都不位于 node_modules 文件夹中。

webpack.config.js:

const webpack = require('webpack');
const { resolve } = require('path');

module.exports = env => {
return {
context: resolve('src'),
entry: {
comp: './start.comp.js',
culture: './start.culture.js',
strategy: './start.strategy.js',
vendors: './start.vendors.js'
},
output: {
path: resolve('dist'),
publicPath: '/dist/',
filename: 'bundle.[name].js'
},
devtool: env.dev ? 'eval' : 'source-map'
};
};

最后一个条目 jquery.placeholder.min.js 有问题

require('./../assets/vendor/typeahead.js');
require('./../assets/vendor/hogan-2.0.0.js');
require('./../assets/vendor/swfobject.js');
require('expose-loader?_!./../assets/vendor/underscore-min.js');
require('expose-loader?FastClick!./../assets/vendor/fastclick.js');
require('expose-loader?AOS!./../assets/vendor/aos.js');
require('./../assets/vendor/jquery.placeholder.min.js');

最佳答案

问题

由于 jquery.placholder.min.js 使用 UMD 作为其加载策略,它通过 require 识别出它是必需的 - 并尝试在同样的方式:

"object"==typeof module&&module.exports?require("jquery"):jQuery

Webpack 看到 require("jquery") 并尝试捆绑 jQuery 库(该库在 node_modules 中不存在)。

解决方案

解决方案是将 jQuery 添加为 external在您的 webpack.config.js 中:

{
...
externals: {
// require("jquery") is external and available
// on the global var jQuery
"jquery": "jQuery"
}
}

当一个模块被标记为外部时,Webpack 知道不要捆绑它,而是使用全局变量。

关于jquery - webpack无法解析 'jquery',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45330231/

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