Webpack的配置和使用

安装

全局安装

npm install webpack -g

本地安装

npm install webpack -D

使用

直接通过命令参数来执行

如果是全局安装的

webpack 入口文件 出口文件

如果是本地安装的

2.1 先在package.json的script标签中添加一条命令(就和全局的命令一模一样)

2.2 通过npm run 命令名 来执行命令

通过配置文件来执行

如果是使用的配置文件,那么在使用webpack的命令的时候,就不需要再传递参数了!

配置文件名为 webpack.config.js, 这个文件一般被放在网站的根目录下

webpack.config.js是一个node.js的模块,所以里面的代码,就是nodejs代码,需要通过nodejs模块化的方式,将配置对象进行导出!

基础配置项

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

}

}

使用webpack打包别的类型的文件

webpack默认支持的文件类型,只有js文件,如果在项目中出现了其他类型的文件,那么webpack本身是无法进行处理的,所以我们需要为每一个类型的文件,单独指定一个加载器(loader)

css

在webpack的项目中,如果要使用css文件,我们可以将css文件当做一个模块,使用import的方式引入到js当中,最终webpack会将css文件中的内容,一起打包到最终的js文件中,也可以在页面中生效

要打包css文件,就需要给css文件配置loader,需要两个loader: style-loader css-loader

安装相应的loader

npm install style-loader css-loader -D

在webpack.config.js中配置css文件对应的loader

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

//module属性中就可以进行loader的配置

module: {

rules: [

{

test: /\.css$/,

//use中放的就是加载器的名称,要注意,调用的顺序是从后向前的

use: ["style-loader", "css-loader"]

}

]

}

}

less sass

less需要的loader: style-loader css-loader less-loader 依赖项: less

sass需要的loader: style-loader css-loader sass-loader 依赖项: node-sass

安装相应的loader

1.1 less-loader:

npm install less-loader less -D

1.2 sass-loader

npm install sass-loader node-sass -D

配置加载器

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

//module属性中就可以进行loader的配置

module: {

rules: [

{

test: /\.css$/,

//use中放的就是加载器的名称,要注意,调用的顺序是从后向前的

use: ["style-loader", "css-loader"]

},

{

//less文件

test: /\.less$/,

use: ["style-loader", "css-loader", "less-loader"]

},

{

//sass文件

test: /\.sass$/,

use: ["style-loader", "css-loader", "sass-loader"]

}

]

}

}

图片 字体 打包

图片需要的loader: url-loader 依赖项: file-loader

字体需要的loader: url-loader

安装

npm install url-loader file-loader -D

配置

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

//module属性中就可以进行loader的配置

module: {

rules: [

{

test: /\.css$/,

//use中放的就是加载器的名称,要注意,调用的顺序是从后向前的

use: ["style-loader", "css-loader"]

},

{

//less文件

test: /\.less$/,

use: ["style-loader", "css-loader", "less-loader"]

},

{

//sass文件

test: /\.sass$/,

use: ["style-loader", "css-loader", "sass-loader"]

},

{

//图片文件

test: /\.(jpg|gif|png|jpeg|svg|bmp)$/,

use: [{

loader: "url-loader",

options: {

//如果图片超过下面这个数据所标注的大小,那么图片将不会被转换成base64的格式,直接会将图片文件扔到dist目录里

limit: 1024 * 50

}

}]

},

{

//字体文件

test: /\.(woff|woff2|eot|ttf)$/,

use: ["url-loader"]

}

]

}

}

ES6 代码打包

用到的loader: babel-loader 依赖项: babel-core

用到转码规则: babel-preset-env

安装

npm install babel-loader babel-core -D

配置

2.1 创建一个.babelrc 用来指定转码的规则

{

presets: [

"env"

]

}

2.2 webpack.config.js配置加载器

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

//module属性中就可以进行loader的配置

module: {

rules: [

{

test: /\.css$/,

//use中放的就是加载器的名称,要注意,调用的顺序是从后向前的

use: ["style-loader", "css-loader"]

},

{

//less文件

test: /\.less$/,

use: ["style-loader", "css-loader", "less-loader"]

},

{

//sass文件

test: /\.sass$/,

use: ["style-loader", "css-loader", "sass-loader"]

},

{

//图片文件

test: /\.(jpg|gif|png|jpeg|svg|bmp)$/,

use: [{

loader: "url-loader",

options: {

//如果图片超过下面这个数据所标注的大小,那么图片将不会被转换成base64的格式,直接会将图片文件扔到dist目录里

limit: 1024 * 50

}

}]

},

{

//字体文件

test: /\.(woff|woff2|eot|ttf)$/,

use: ["url-loader"]

},

{

//ES6

test: /\.js$/,

//排除node_modules中的内容

exclude: /node_modules/,

use: ["babel-loader"]

}

]

}

}

html-webpack-plugin的使用

作用: 将src目录下的index.html作为模板,每次在打包的时候,都会将其复制到dist目录下,并且自动为其引入bundle.js

安装

npm install html-webpack-plugin -D

配置webpack.config.js

var HtmlWebpackPlugin = require("html-webpack-plugin")

var path = require("path")

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

plugins:[

new HtmlWebpackPlugin({

template: path.join(__dirname, "src/index.html")

})

]

}

webpack-dev-server的使用

如果没有这个东西,那么每次在修改代码之后,都需要重新进行打包,才能看到效果!

webpack-dev-server可以启动一个简易的http服务器,当代码发生改变的时候,实时的进行打包并且刷新页面显示效果! 这个东西只会打包更新了的内容,并不会将整个项目完整的打包,所以效率会比较高,而且它打包的内容都是直接放在内存里面的,所以访问速率也会非常快

安装

npm install webpack-dev-server -D

使用

2.1 直接给命令传参

webpack-dev-server --port 9000 --contentBase ./src --hot

2.2 在webpack.config.js中进行配置

var path = require("path");

//如果使用webpack.config方式进行配置,那么必须有这个包引入

var webpack = reuqire("webpack");

module.exports = {

entry: path.join(__dirname, "入口文件路径"),

output: {

path: path.join(__dirname, "dist"),

filename: "bundel.js"

},

devServer: {

port: 9999,

contentBase: "./src",

hot: true

},

plugins:[

//这边是给dev-server设置一个插件,如果没有这个插件则热更新会报错

new webpack.HotModuleReplacementPlugin()

]

}

babel-cli的使用

安装

npm install babel-cli -g

npm install babel-preset-env

配置

创建.babelrc文件

{

presets: [

"env"

]

}

使用

babel 要转换的文件的路径 --out-file 输出的文件的路径

单文件组件

就是将组件相关的内容(HTML JS CSS)全部放到了一个.vue文件当中

//这里就是组件的html部分也就是所谓的模板

export default {

data(){},

filters: {},

components: {},

watch: {},

directives: {},

created(){}

}

scoped属性标志着这个style标签中的css样式是只对当前组件有效!

Vue-Cli

这是一个可以快速生成一个项目基本结构的vue工具

安装

npm install vue-cli -g

使用

vue init webpack 项目名称

在项目模板中写代码

创建组件!

配置路由!

项目模板的获取两种方式:

vue插件挂载html6,vue6相关推荐

  1. E:VUE 插件 开发与使用 (一)

    此文写于做过一个小项目后,当时对于vue的一些插件用的很不熟,弄个时间效果换了2个,最终还是用 jquery 版本实现的功能!! 或许用的不熟,总感觉现在的插件不能完全满足,相对于以后的项目,封装写基 ...

  2. Vue3 高级语法(二)—— 自定义指令、Teleport、Vue插件

    一.认识自定义指令 在Vue的模板语法中我们学习过各种各样的指令:v-show.v-for.v-model等等,除了使用这些指令之外,Vue也允许我们来自定义自己的指令. 注意:在Vue中,代码的复用 ...

  3. Vue插件的创建使用

    一.插件通常用来为 Vue 添加全局功能. 1.添加全局方法或者 property. 2.添加全局资源:指令/过滤器/过渡等.如 vue-touch 3.通过全局混入来添加一些组件选项.如 vue-r ...

  4. Vue3学习之旅--Vue3高级语法补充-自定义指令,vue插件,Teleport......

    文章目录 Vue3高级语法补充 自定义指令 认识自定义指令 实现方式一:默认实现 实现方式二:局部自定义指令 方式三:自定义全局指令 指令的生命周期 指令的参数和修饰符 自定义指令练习 时间格式化指令 ...

  5. Vue插件是怎样开发的?

    1.插件的分类 1.添加全局方法或属性,如 vue-element 2.添加全局资源: 指令/过滤器/过渡等,如 vue-touch 3.通过全局mixin方法添加一些组件选项,如 vuex 4.添加 ...

  6. 开发Vue插件四种方式

    在日常开发中,可能只需要一两个插件就可以完成对系统开发需要.如果引入整个组件库,最后打包项目体积比较大.例如element-ui中的message提示组件等.下面会在vuejs官网提供的插件建议,根据 ...

  7. vue组件+vue插件的创建和使用

    一.vue组件的概念 是一个可以重复使用的Vue实例,它拥有独一无二的组件名称,它可以扩展HTML元素,以组件名称的方式作为自定义的HTML标签.因为组件是可复用的Vue实例,所以它们与new Vue ...

  8. Vue组件、Vue插件创建与使用

    Vue组件 作用 1.组件是vue的一个重要的特点 2.实现多人协作开发 3.通过组件划分降低开发的难度 4.实现复用,降低重复劳动 组件解释 组件就是定义好的一功能模块 建议:多用props,少在组 ...

  9. VSCODE中使用VUE插件生成快捷模板

    VUE插件生成模板 1>VSCODE安装VUE2 Snippets 2>ctrl+shift+p 输入snippets选中首选项 3>默认模板{"Print to cons ...

  10. 从零开始编写一个vue插件

    title: 从零开始编写一个vue插件 toc: true date: 2018-12-17 10:54:29 categories: Web tags: vue mathjax 写毕设的时候需要一 ...

最新文章

  1. 被人画是怎样一种体验?
  2. DeepID:Python基于Caffe的DeepID2实现人脸识别的简介、实现之详细攻略
  3. shell排序_Java后端技术精选:希尔排序
  4. Hibernate之深入Hibernate的映射文件
  5. 使用字符缓冲流读取数据
  6. 海尔微型计算机一键还原怎么操作,教你电脑一键还原怎么操作
  7. 【神经网络与深度学习】卷积神经网络在自然语言处理的应用
  8. 不支持给定路径的格式_申论写作标准格式汇总,考前一定要看!
  9. SQLite之C++封装库CppSQLite使用方法
  10. java并发编程实践之安全发布和逸出
  11. 干线公路交叉口右转车辆与非机动车冲突精细化治理实例
  12. 码code | 拒绝996,不用服务器也能高效开发小游戏
  13. WDS+MDT部署Windows7操作系统2—;导入启动映像和安装映像
  14. 负离子空气净化器哪个牌子好,空气净化器科普
  15. OpenCVSharp 4.5 去离焦模糊
  16. 京东 PC 首页 2019 改版前端总结
  17. 查看电脑是几核几线程
  18. connection_reset解决方案
  19. JCE cannot authenticate the provider BC问题解决
  20. 电子科大信软互+班 程算I 2021机考真题

热门文章

  1. mysql 因单个表过大导致导入数据库失败
  2. 由树的定义和递归想到的
  3. 使用 Cobbler 自动化和管理系统安装
  4. Hibernate存取JSON数据
  5. InputFilter实现EditText文本输入过滤器
  6. myeclipse 8.0GA 安装注册步骤
  7. Windows软件防火墙实现技术简述
  8. 微信小程序使用腾讯地图
  9. mysql过去12个月不存在为0_mysql 按月统计但是有几个月没有数据,需要变成0
  10. python中for循环遍历文件_Python中的用for,while循环遍历文件实例