webpack中使用第三方插件(jQuery)

一:通过npm安装的jQuery

  1. npm install --save-dev jquery
  2. 在webpack的plugins里面配置jquery
plugins: [
    // 使用jQuery(npm管理)
    new webpack.ProvidePlugin({
        $: 'jquery'
    })
]

二:jQuery是放在本地自己管理的目录里面

  1. 在webpack.config.js配置resolve把jQuery解析到想要的目录
// 配置resolve把jQuery解析到想要的目录

resolve: {
    alias: {
        jquery$: path.resolve(__dirname, 'src/lib/jquery.min.js')
    }
},
  1. 在webpack的plugins里面配置jquery
plugins: [
    // 使用jQuery(npm管理)
    new webpack.ProvidePlugin({
        $: 'jquery'
    })
]

三:通过imports-loader加载

  1. 安装imports-loader
  2. 在webpack.config.js配置resolve把jQuery解析到想要的目录
// 配置resolve把jQuery解析到想要的目录

resolve: {
    alias: {
        jquery$: path.resolve(__dirname, 'src/lib/jquery.min.js')
    }
},
  1. 在module的rules里面配置规则
{  // 加载jQuery
    test: path.resolve(__dirname, 'src/app.js'),
    use: [
        {
            loader: 'imports-loader',
            options: {
                $: 'jquery'
            }
        }
    ]
}
  1. 全部配置
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var webpack = require('webpack');

module.exports = {
    // 入口
    entry: {
        app: './src/app.js'
    },

    // 输出
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: '[name]-bundle-[hash:5].js'  // 带hash值得js
    },

    // 配置resolve把jQuery解析到想要的目录

    resolve: {
        alias: {
            jquery$: path.resolve(__dirname, 'src/lib/jquery.min.js')
        }
    },
    module: {
        rules: [
            {
                test: /\.less$/,
                use: [
                    {
                        loader: 'style-loader',  // 可以把css放在页面上
                        options: {
                            singleton: true, // 使用一个style标签
                            transform: './css.transform.js' // transform 是css的变形函数,相对于webpack.config的路径
                        }
                    },
                    {
                        loader: 'css-loader',   // 放在后面的先被解析
                        options: {
                            minimize: true,
                            modules: true,
                            localIdentName: '[path][name]_[local]_[hash:base64:5]'
                        }
                    },
                    {
                        loader: 'less-loader'
                    }
                    
                ]
            },
            {  // 加载jQuery
                test: path.resolve(__dirname, 'src/app.js'),
                use: [
                    {
                        loader: 'imports-loader',
                        options: {
                            $: 'jquery'
                        }
                    }
                ]
            }
            
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './index.html',  // 文件地址
            filename: 'index.html',  // 生成文件名字
            // inject: false,    // 不把生成的css,js插入到html中
            chunks: ['app'],  //指定某一个入口,只会把入口相关载入html
            minify: {  // 压缩html
                collapseWhitespace: true   // 空格
            }
        })
    ]
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,293评论 0 21
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,744评论 7 110
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,769评论 0 1
  • “爸,要常来啊。” 某一天走在回家的路上,突然听到这样一句话。 只见一个年轻人,扶着老人的背,送着走了几步,就走进...
    止一量化养家阅读 196评论 0 1
  • 以下方法可以告诉你自己写了多少行代码 打开终端 cd 进入文件夹 查看行数 查看 当前文件夹每个文件的行数 效果 ...
    CoderZNB阅读 436评论 0 0