webpack起步

news2024/11/27 6:25:33

webpack

1,起步

先安装node.js

再用npm安装webpack全局

运用commonjs模块化语法,用全局命令进行打包来初步了解一下
命令为: webpack 入口main路径 出口bundle路径
很麻烦所以要配置一下webpack入口出口配置。

2,配置

webpack入口出口配置

module.exports = {
    entry: './src/main.js',
    output: {
        path: path.resolve(__dirname,'dist'),
        filename: 'bundle.js',
        publicPath: '../dist/'
    },

这样就可以用webpack运行程序了。

终端npm init 一下,会生成package.json文件

我们来配置package.json中scrpts脚本下添加build为webpack

之后就可以npm run build运行程序了

{
  "name": "meetwebpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^6.7.1",
    "style-loader": "^3.3.1",
    "webpack": "^3.6.0"
  }
}

而且这样运行会主动去找本地文件的webpack版本,没有后再去找全局webpack版本.

3,webpack-css

进入官网找到相应的loader

先安装 npm install xxx loader --save -dev 注意版本号,webpack是3 4 5对应的loader版本 自行搜索不然会报错

在这里插入图片描述

加依赖 repuri(‘./xx/.css’)

再配置

{
    test: /\.css$/,
    //css只负责加载  style负责渲染   从右向左执行
    use: [ 'style-loader', 'css-loader' ]
},

less同理

4,webpack图片

同理

注意大小区别

     {
                test: /\.(png|jpg|gif)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            //图片大于limit要下载 file-loader(不用配置),图片在dist以哈希值生成,需要在web.config配置publicpath
                            //图片小于limt会编译为base46字符串生成.
                            limit: 90000,
                            name: 'img/[name].[hash:8].[ext]'           //在dist下生成img文件夹 原名.哈希值8位.后缀    注意变量加[]

                        }
                    }
                ]
            }

5,webpack中es6转es5

因为有些浏览器还不支持es6语法,我们要转化一下

第一步下载

npm install babel-loader@7.1.5 babel-core@6.26.3 babel-preset-es2015@6.24.1

注意版本这里是对应webpack3.6.0的版本

第二部配置

webpack.config.js

{
    test: /\.js$/,
    exclude: /(node_modules|bower_components)/,
    use: {
        loader: 'babel-loader',
        options: {
            presets: ['es2015']
        }
    }
},

第三部

npm run build

6,webpack中vue转

1,npm install vue@2 -save 下载

2,import Vue from ‘vue’ 导入

3

const app = new Vue({
    el: '#app',
    data: {
        msg:'hello webpack'
    }
});

4 npm run build 发现报错,

是因为

https://static01.imgkr.com/temp/3ac7c3a5371e48608c511ed2917aaa02.png

5,配置webpack.config.js

resolve:{
    alias:{
        'vue$': 'vue/dist/vue.esm.js'
    }
}

vue分离

1,组件化开发,把template,data,methos等等,是可以抽离出来到对象的,然后commponts里注册一下,往常我们会用在HTML中div根里,但是我们可以用在根的template里面,直接去替换html中的根div。

2,新建一个js文件,把对象里的js分离出去,improt 默认导入到入口main中

3,新建vue 安装 loader , vue-template-compiler,(注意13之后版本需要安装插件)

4,把html js css 分离出

5,之后你可以创建多个.vue,生成组件树。

7,webpack的plugin

1,版权·注释

const webpack = require('webpack')
plugins:[
    new webpack.BannerPlugin('最终版权归kun所有'),
],

2,index打包

npm install html-webpack-plugin --save-dev

const HtmlWebpackPlugin = require('html-webpack-plugin')
plugins:[
    new HtmlWebpackPlugin({
        template:'index.html'
    }),
],

3,搭建本地服务器-自动实时

npm install --save-dev webpack-dev-server@2.9.1

devServer:{
    contentBase:'./dist',
    inline:true,
}

devserver也是作为webpack中的一个选项,选项本身可以设置如下属性:
contentBase:为哪一个文件夹提供本地服务,默认是根文件夹,我们这里要填写./dist
port:端口号
inline:页面实时刷新
historyApiFallback:在SPA页面中,依赖HTML5的history模式

4,js丑化,压缩

npm install uglifyjs-webpack-plugin@1.1.1 --save-dev

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud Netflix复习之Ribbon

文章目录写作背景SpringCloud Ribbon是什么,干了什么事情Ribbon组件的核心功能Ribbon内置了哪些负载均衡算法上手实战在SpringCloud里Ribbon实战从源码角度看下Ribbon实现原理SpringCloud与Ribbon整合的原理LoadBalancerInterceptor拦截器改变了RestTemplate什么行为…

第三章:OAuth协议流程

应用场景 1、 原生app授权:app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、 请求后台数据。 2、前后端分离单页面应用:前后端分离框架,前端请求后台数据,需要进行oauth…

Codeforces Round #842 (Div. 2) C. Elemental Decompress

翻译:您将得到一个由𝑛个整数组成的数组𝑎。找到两个排列组合𝑝长度和𝑞𝑛这样马克斯(𝑝𝑖,𝑞𝑖)𝑎𝑖所有1≤𝑖≤&#x1…

Spring Boot学习篇(七)

Spring Boot学习篇(七) 1.thymeleaf模板引擎使用篇(一) 1.1 准备工作 1.1.1 在pom.xml中导入所需要的依赖 a thymeleaf模板引擎所需要的依赖 <!--thymeleaf模板引擎,前后端不分离的时候用 普通的html格式--> <dependency><groupId>org.springframework.…

计算机网络实验---Wireshark 实验

数据链路层 实作一/熟悉 Ethernet 帧结构 实作二/了解子网内/外通信时的 MAC 地址 实作三/掌握 ARP 解析过程 网络层 实作一 /熟悉 IP 包结构 实作二 IP 包的分段与重组 实作三 考察 TTL 事件 传输层 实作一 熟悉 TCP 和 UDP 段结构 实作二 分析 TCP 建立和释放连接 应用层 …

数据结构基本介绍

1.what is Data Structure? A data structure is a memory used to store and organize dataIt is also used for processing, retrieving, and storing data 2. what is classification of Data Structure? 2.1 what is Linear data structure? Data structure in which…

你还不懂递归么?不允许你不懂,进来折腾下自己吧

举例数组 const arr [ {id: "1175310929766055936", pid: "", name: "总裁办" },---返回空数组, {id: "1175311213774962688", pid: "", name: "行政部" },---返回空数组, {id: "1175311267684352000&qu…

随想录一刷Day27——回溯算法

文章目录Day27_回溯算法13. 子集 II14. 491.递增子序列15. 全排列全排列 IIDay27_回溯算法 13. 子集 II 90. 子集 II class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startI…

[SwiftUI 开发] Widget 小组件

小组件简述 小组件可以在主屏幕上实现内容展示和功能跳转。 系统会向小组件获取时间线&#xff0c;根据当前时间对时间线上的数据进行展示。点击正在展示的视觉元素可以跳转到APP内&#xff0c;实现对应的功能。 小组件是一个独立于 App 环境(即 App Extension)&#xff0c;小…

谷粒学院——第二十一章、spring security详细

一、Spring Security介绍 1、Spring Security简介 Spring 是非常流行和成功的 Java 应用开发框架&#xff0c;Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。 正如你可能知道的关于安全…

年度征文|2022年「博客之星」,花落谁家? 大家来竞猜吧

一年一度的「博客之星」大赛如火如荼地进行着&#xff0c;大家都忙着评分、发帖、回帖.....今天发现我在分组的排名只有40多名&#xff0c;基本上算是放弃了。但是&#xff0c;看到本文的朋友&#xff0c;还是可以帮我拉拉票的&#xff01;请点开链接给个五星评分&#xff1a; …

CentOS服务器署Springboot的java项目最简单操作步骤

CentOS服务器署Springboot的java项目最简单操作步骤 准备工作 1.首先本地有一个能跑起来正常的 java 项目的 jar 包; 2.有一个前端项目, 可以仅是一个 index.html 文件; 3.需要备案好的域名 (可选, 否则只能 ip 访问) 4.购买阿里云或者腾讯云等等任意 CentOS 服务器一个 1. 获…

(机器学习深度学习常用库、框架|Pytorch篇)第(待定)节:卷积神经网络CNN中一些经典网络结构写法

文章目录一&#xff1a;LeNet-5二&#xff1a;AlexNet三&#xff1a;VGG四&#xff1a;ResNet五&#xff1a;MobileNetV1六&#xff1a;InceptionNet一&#xff1a;LeNet-5 LeNet-5&#xff1a;LeNet-5是一个较简单的卷积神经网络。下图显示了其结构&#xff1a;输入的二维图像…

ansible通过多种方法配置yum源仓库

目录 1.挂载本地光盘到/mnt ​2.配置yum源仓库文件通过多种方式实现 仓库1 &#xff1a;Name: RH294_BaseDescription&#xff1a; RH294 base softwareBase urt: file:///mnt/BaseOS不需要验证钦件包 GPG 签名启用此软件仓库 ​编辑仓库 2:Name: RH294_StreamDescription &…

第四十二篇 nextTick

在前面封装swiper组件当中&#xff0c;通过许多种方式方法&#xff0c;其一从mounted初始化过早转到updated后出现初始化重复&#xff0c;再者通过设置key值和使用v-if控制swiper组件&#xff0c;然后通过Vue.diretive自定义指令的方式来封装swiper组件&#xff0c;那么本篇的n…

排序算法之快速排序

目录 排序算法介绍 快速排序 算法流程 算法实现 python C 快排为什么快 算法优化 基准数优化 python C 尾递归优化 python C 排序算法介绍 《Hello算法》是GitHub上一个开源书籍&#xff0c;对新手友好&#xff0c;有大量的动态图&#xff0c;很适合算法初学者自…

Struts2框架标签

Struts2框架标签1、前言2、UI标签2.1、表单标签2.1、非表单标签3、通用标签4、例子4.1、实体类User4.2、控制器UserAction4.3、配置文件struts.xml4.4、页面users.jsp4.5、测试1、前言 Struts2有丰富的tag标签可以使用&#xff0c;即Struts2的标签库&#xff0c;如果能够灵活运…

彻底理解动态规划:编辑距离

本篇的题目非常经典&#xff0c;几乎是面试必备&#xff0c;即&#xff0c;编辑距离问题&#xff0c;edit distance&#xff1b; 给定两个字符串word1以及word2&#xff0c;返回将word1转为word2需要的最少步骤&#xff0c;在每一步中你可以针对字符串word1进行以下操作&#…

技术开发115

技术开发115 业务内容&#xff1a; 拖车用辅助脚、拖车用零件类、特殊车辆用车轴Sub。Assy产品、面向汽车产业的生产设备、面向建设机械的零部件类、面向汽车产业的检查夹具 公司简介&#xff1a; 董事长&#xff1a;佐藤安弘 资本金&#xff1a;4500万日元 员工数&#x…

shell第五天练习

题目&#xff1a; 1、编写函数&#xff0c;实现打印绿色OK和红色FAILED&#xff0c;判断是否有参数&#xff0c;存在为Ok&#xff0c;不存在为FAILED 2、编写函数&#xff0c;实现判断是否无位置参数&#xff0c;如无参数&#xff0c;提示错误 3、编写函数实现两个数字做为参数…