2017-06-19 31 views
0

我试图加载slick pluginwebpack版本2.6.1,目前为止没有成功。Webpack:无法加载具有全局jQuery的滑动插件

我需要加载为全局变量和版本2.2.4(因为我有其他旧插件管理)jQuery的,所以我给自己定ProvidePluginwebpack.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是正确加载,但华而不实的不是。

我错过了什么?

谢谢

回答

0

问题是我的package.json:我有光滑传送带依赖内部财产和的jQuerydevDependencies代替。

移动jquery里面的依赖关系解决了我的问题。