• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >心得技巧 > webpack从入门到放弃

webpack从入门到放弃

作者:Chengyu.Wang 字体:[增加 减小] 来源:互联网 时间:2017-09-11

本文主要包含webpack,config,前端等相关知识,Chengyu.Wang希望在学习及工作中可以帮助到您

首先确实自己电脑安装了node

node -v

也可以使用命令把node升级到最新的稳定版

npm i -g n
n stable

初始化项目

mkdir demo
cd demo
npm init

然后安装 webpack

npm install webpack -g

这个时候,就全局安装了webpack命令,注意,只是全局安装了webpack命令,并不是指在任意项目下就可以直接使用webpack了,这个时候,我们就要在项目内安装webpack的包与相关依赖

npm install webpack --save-dev

这个时候,我们的webpack就安装好了

最简单的使用

我们编写一个a.js

module.exports = {
    test:function(){
        console.log('hello world')
    }
}

然后再编写一个b.js

const haha = require('./a.js')
haha.test()

这个时候,我们在命令行执行一下

node b.js

发现输出了 hello world,说明在b.js中成功的引用了a.js中的模块.这个时候,我们试一下webpack打包

webpack b.js build.js

然后就生成了一个build.js文件.我们也在命令行执行一下

node build.js

发现也输出了hello world .说明build.js成功的把a.js与b.js中的内容整合到自身中

使用webpack.config.js

当然,每次输入 webpack b.js build.js 会显得很麻烦,这个时候,我们就可以使用webpack.config.js来进行配置了

module.exports = {
  entry: {
    build: './b.js',
  },
  output: {
    filename: '[name].js?v=[hash]',
  }
};

这个时候,我们就可以直接在命令行输入 webpack 这个就在以达到之前一样的目的

webpack编译输出的含义

Hash: 表示当前文件的hash值
Version: 表示当前所使用的webpack版本
Time: 表示当前编译所使用的时间

Asset Size Chunks Chunk Names
文件位置 文件大小 文件引用其它资源数量 本资源名称

引用的插件名称
引用插件的编译过程

配置命令行快捷方式

npm run

我们可以使用上诉命令查看,在本项目下有哪些可以快速执行的命令,还可以自行配置,在package.json中,scripts就是我们自行配置命令的地方.

比如我们添加一条:
“build”:”webpack”

这样,我们在命令行里运行

npm run build

就可以执行里面的命令了,这一点在配置参数比较的时候非常有用

配置浏览器自动刷新

首先,我们要安装相关插件

npm install webpack-dev-server --save-dev

这个时候,我们在package.json里面的scripts 中添加

"dev":"webpack-dev-server --env development",
"build":"webpack --env production"

其中 –env development 与 –env production 是指的是node环境,分别指的是开发环境与生产环境.
这个时候,我们就可以启动

npm run dev

来启动本地服务,并且自动更新.当然这个时候,我们进行的是全部刷新.当然我们可以这么配置package.json来进行热更新

"dev":"webpack-dev-server --env development",
"build":"webpack --hot --env production"

样式文件加载

首先在相关页面的js中引入css文件

import './cssPath'

要安装相关loader
- 使用css

npm install css-loader style-loader postcss-loader  --save-dev

然后再创建一个postcss.config.js文件,在里面输入,这个主要用于自动添加浏览器前缀

module.exports = {
  plugins: [
    require('autoprefixer')()
  ]
}

然后在webpack.config.js中配置相关内容

 module:{
    rules:[
      {
        test: /\.css$/,
        use: ['style-loader','css-loader','postcss-loader'],
      },
    ],
  },

注意,loader加载顺序是从右往左

使用es6

首先要安装相关插件

npm install babel babel-core babel-preset-es2015 --save-dev

然后配置 .babelrc 文件

{
    "presets":["es2015"],
    "plugins":[]
}

然后配置webpack.config.js

module:{
    rules:[
      {
        test: /\.js/,
        use: ['babel-loader'],
      },
    ],
  },

压缩文件

首先要安装相关插件

npm install babel-preset-minify --save

然后配置webpack.config.js

const BabiliPlugin = require('babel-preset-minify');

plugins: [
    new BabiliPlugin(),
    new webpack.optimize.UglifyJsPlugin({
        compress: {
            warnings: false,
            drop_debugger: true,
            drop_console: true
        }
    }),
  ],

抽出公共部分重复使用

首先编写一个vendor.js,里面主要是用于管理导入库(我一般的作法是把项目中所有引用的库在这里面再引用一遍)

import Vue from 'vue'
import .... from ...

然后配置webpack.config.js

//entry 中的内容添加
vendor : './vendor.js'

//plugins中的内容添加
new webpack.optimize.CommonsChunkPlugin({
    names: ['common','vendor']
})

您可能想查找下面的文章:

  • Webpack 入门教程
  • webpack从入门到放弃
  • webpack实现热加载自动刷新方法

相关文章

  • 2018-08-23网易实战案例:教你五步打造APP节日主题设计
  • 2018-08-23如何让搜索框的体验更好?我总结了这些设计套路!
  • 2018-08-23用实战案例,带你解读经典书籍《用户体验要素》
  • 2018-01-28EditorConfig 的配置
  • 2018-08-23一个专业的产品着陆页是如何设计出来的?
  • 2017-08-06什么情况下使用table 什么情况下使用css(经验分享)
  • 2018-08-23谷歌对话式交互规范指南系列:对话式交互的概念和机制
  • 2017-08-06网页设计时我们应该注意的一些问题
  • 2018-08-23超强干货!如何更加科学地提高文本可读性?
  • 2017-08-06美工自我培养的几点经验总结

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 同一个设计需求,新手和高手都是怎么分析的?
    • UCAN2017回顾!当新技术来临时,设计会发生哪些变化?
    • HTML写链接的时候要始终将正斜杠添加到子文件夹减少HTTP请求
    • 亚马逊语音交互设计规范(三)Alexa的回应
    • 优秀的网页前端设计的一些指标
    • 支付宝新首页的几点前端实践小结
    • 关于极简主义设计,这篇文章帮你安排得明明白白
    • 网页宽度自动适应手机屏幕宽度的实现代码(viewport)
    • Sketch 49 的交互原型新功能怎么用?来看这篇教程!
    • 超详细解读:UI导航设计不仅仅指的是导航栏

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有