zoukankan      html  css  js  c++  java
  • webpack4引入JQuery的两种方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/weixin_36185028/article/details/81114827

    非script标签的形式引入JQuery。
    安装JQuery:

    先安装加载器expose-loader,用于将插件暴露到全局中供其他模块使用:

    npm i expose-loader --save

    安装JQuery:

    npm install jquery --save

    以上两个模块也是项目发布依赖的模块,因此安装参数选择--save。
    如何使用:

    1.第一种方法:在打包入口文件中直接require并用expose-loader暴露$到全局

    打包入口文件./src/index.js中引入JQuery:

    require("expose-loader?$!jquery");

    在html文件中引入测试是否全局可用./dist/index.html:

        <!DOCTYPE html>
        <html lang="en">
         
        <head>
            <meta charset="UTF-8">
            <title>Document</title>
            <script type="text/javascript" src="main.js"></script>
        </head>
         
        <body>
            <script>
                $(function() {
                    console.log($("body"));
                })
            </script>
        </body>
         
        </html>

    打包会自动在./dist目录下生成main.js

    浏览器打开./dist/index.html文件在控制台得到输出结果。

    注:如果在js文件中直接使用var $ = require("jquery");引入$无法暴露到全局,只能在当前js文件中使用。

    2.第二种方法:在打包入口文件引入JQuery,在配置文件中暴露到全局

    项目根目录创建配置文件./conf/webpack.dev.js:

        const path = require("path");
        module.exports = {
            mode: "development", //打包为开发模式
            entry: "./src/index", //入口文件
            output: { //输出路径和文件名,使用path模块resolve方法将输出路径解析为绝对路径
                path: path.resolve(__dirname, "../dist"),
                filename: "main.js"
            },
            module: {
                rules: [
                    //暴露$和jQuery到全局
                    {
                        test: require.resolve('jquery'), //require.resolve 用来获取模块的绝对路径
                        use: [{
                            loader: 'expose-loader',
                            options: 'jQuery'
                        }, {
                            loader: 'expose-loader',
                            options: '$'
                        }]
                    }
                ]
            }
        }

    入口文件中./src/index.js引入jquery:

    require("jquery");

    测试文件./dist/html内容不变,打包:

     

    以上两种引入方式得到的效果一样,第一种引入方式更加简单
    ————————————————
    版权声明:本文为CSDN博主「骑着代码去流浪」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_36185028/article/details/81114827

  • 相关阅读:
    thinkphp怎么修改配置进入默认首页
    apache中怎么配置网站的默认首页
    [转]数据库更新(Update语句)查询
    ACCESS删除datagridview和数据库中的一条数据,同时更新显示的方法源码
    想ACCESS数据库插入新的用户
    C# 对象不能从 DBNull 转换为其他类型。
    windows form参数传递过程
    向ACCESS数据库中的表导入EXCEL表,在 System.Data.OleDb.OleDbException 中第一次偶然出现的“System.Data.dll”类型的异常
    C#实现Access导入导出Excel
    dataGridView1.DataSource,解决查询结果不从第一行显示,而是不断往表下面扩展问题
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/11567752.html
Copyright © 2011-2022 走看看