Webpack:无法加载具有全局jQuery的滑动插件
问题描述:
我试图加载slick plugin与webpack版本2.6.1,目前为止没有成功。Webpack:无法加载具有全局jQuery的滑动插件
我需要加载为全局变量和版本2.2.4(因为我有其他旧插件管理)jQuery的,所以我给自己定ProvidePlugin我webpack.config.js文件:
const webpack = require('webpack');
const nodeEnv = process.env.NODE_ENV || 'production';
module.exports = {
devtool: 'source-map',
entry: { filename: './src/js/main.js' },
output: { filename: './dist/js/bundle.js' },
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}]
},
plugins: [
new webpack.ProvidePlugin({
jQuery: 'jquery',
$: 'jquery',
jquery: 'jquery'
}),
new webpack.DefinePlugin({
'process.env': { NODE_ENV: JSON.stringify(nodeEnv) }
})
]
};
我main.js文件如下:
import 'slick-carousel';
console.log('jquery version: ', $.fn.jquery);
console.log($.fn.slick);
bundle.js文件由产生的WebPack与以下日志:
Version: webpack 2.6.1
Time: 1490ms
Asset Size Chunks Chunk Names
./dist/js/bundle.js 616 kB 0 [emitted] [big] filename
./dist/js/bundle.js.map 794 kB 0 [emitted] filename
[0] ./~/jquery/dist/jquery.js 258 kB {0} [built]
[1] ./~/slick-carousel/slick/slick.js 84.3 kB {0} [built]
[2] ./src/js/main.js 1.52 kB {0} [built]
[3] ./~/slick-carousel/~/jquery/dist/jquery.js 268 kB {0} [built]
jQuery是加载两次:第一次在全球环境中,2.2.4版本,第二个是3.2.1版本(版本太新,对我来说,我不想要)作为依赖,我想。
加载到一个HTML页面,我得到在浏览器开发工具以下日志:
jquery version: 2.2.4
undefined
所以,jQuery是正确加载,但华而不实的不是。
我错过了什么?
谢谢
答
问题是我的package.json:我有光滑传送带的依赖内部财产和的jQuery内devDependencies代替。
移动jquery里面的依赖关系解决了我的问题。