1.webpack入门介绍。

1、了解Webpack相关

  • 什么是webpackzz
    • Webpack是一个模块打包器(bundler)。
    • 在Webpack看来, 前端的悉数资源文件(js/json/css/img/less/…)都会作为模块处理
    • 它将依据模块的依托联络进行静态分析,生成对应的静态资源
  • 了解Loader
    • Webpapproachack 自身只能加载JS/JSON模块,假如要加载其他类型的文件(模块html网页制造),就需要运用对应的loader 进行转化/加载
    • Loaaapproachppstoreder 自身http://www.baidu.com也是作业在 node.js 环境中的 JavaScript 模块
    • 它自身是一个函数,接受源文件作为参数,回来转化的作用
    • loader 一般以 xxx-loader 的办法命名gitee,xxx 代表了这个 lapp是什么意思oader 要做的服务器租借转化功用,比如 json-loader。
  • 装备文件(默许)
    • webpack.config.jshtml代码 : 是一个no服务器租借de模块,回来一个 json 格appreciate局的装备信息方针
  • 插件
    • 插件件能够完毕一些loader不能完毕的功用。
    • 插件的运用服务器和电脑主机的区别一般是在 webpack 的装备信息 plugins 选项html标签特点大全中指定。
    • CleanWebpackPlugin: 自服务器Git根除指定文件夹资源
    • HtmlWebpackPluginhttpwatch: 主动生成Hhthttp 404tp 404TML文件并
    • UglifyJSPlugin: 紧缩js文件

2、学习文档 :

  • webpack官网: webpack.github.io/
  • webpack2文档(英文): webpack.js.org/
  • webpack2文档(中文): doc.weHTMLbpack-china.org/

3、翻开项目

  • 初始化项目:
    • 生成package.json文件
    {
    "name":application "webpack_test",
    "version": "1.0.0"
    }
    
  • 设备webpack
  • npm install webpack -g //全局设备
- npm install webpack --save-dev  //部分html文件怎样翻开设备

4、编译打包运用

  • 创立进口src/js/ : enGittry.js
  • document.write(“entry.js is work”服务器怎样建立);
  • github永久回家地址建主页面:appointment dist/index.html
    <scriptgiti type="text/java服务器怎样建立script" srcgitee="https://juejin.im/post/6996665giti311260835854/bundle.js"></script>
    
  • 编译js
    • webpack src/htmljs/entry.html标签特点大全js dist/bundle.js
  • 检查页面作用

5、增加js/json文件

  • 创立第二个js: src/js/math.js
    export function squagit教程re(x) {
    returnhttp 302 x * x;
    }
    export function cube(x) {
    return x服务器ip * x * x;
    }
    
  • 创立json文件: src/HTMLjson/data.json
    {
    "name": "Tom",
    "age": 12
    }
    
  • 更新进口jgithup官网s : entry.js
    import {cube} from './math'
    import data from '../json/data.json'
    //留神data会主动被转git教程化为原生的js政giti策或许数服务器内存和普通内存有什么区别组
    document.write("ehttpclientntry.js is work <bgithub永久回家地址r/>");
    document.write(cube(2) + '<br/>');
    document.wr服务器怎样搭建ite(JSON.stringify(data) + '<app是什么意思br/>')
    
  • 编译js:
    webpack src/js/entry.js diHTTPst/bundle.js
    
  • 检查页面作用

6、运用webpack装备文件

  • 创立webpack.config.服务器租借多少钱一年js
    const path = require('path'); //path内置的模块,用来设git教程置途径。
    module.exports = {
    entrgithub永久回家地址y: './src/js/e服务器租借ntry.js',   // 进口文件
    output: {                     // 输出装备
    fGitilename: 'bun服务器装备dle.js',      // 输出文件名
    path:服务器内存和一般内存有什么差异 patapproveh.resolve(__dirname, 'dist')   //输出文件途径装备
    }
    };
    
  • 装备npm指令: package.json
    "scripts": {
    "build": "webpack"
    },
    
  • 打包运用appointment
    npm run buildhttp://192.168.1.1登录
    

7、打包css和图片文件

  • 设备款式的loade服务器体系r
 npm install css-loader style-loader --sa服务器体系务器怎样建立ve-dev
npm install file-lohttp://www.baidu.comader url-loader --shtml5ave-dev
补偿:url-loader是方针file-loader的上层封装,运用时需协作file-loader运用http://www.baidu.comhtml标签
  • 装备loadegitir
    module: {
    rules: [
    {
    test: /.css$/,
    use: [
    'stylhttp://192.168.1.1html文件怎样翻开登录e-loader',
    'css-loader'
    ]
    },
    {
    testhtml文件怎样翻开: /.(png|jpg|gif)$/,
    use: [
    {
    loader: 'url-loader',
    oappstoreptions: {html标签特点大全
    limit: 8192
    }
    }
    ]
    }
    ]
    }
    
  • 向运用中增加2张图片:
    • 小图: img/logo.applicatiohttp://www.baidu.comnpng
    • 大图: img/big.jpg
  • 创立款式appear文件: src/chtml是什么意思ss/test.css
    body {
    background: url('.github是干什么的./img/loghttp 302o.jpg')
    }
    
  • 服务器ip新进口js : entry.js
    • import ‘../css/test.cAPPss’
  • 增加css款式
       #box1{
    width: 300px;
    height: 300px;
    background-image: urlappearance("../imgitlabage/logo.jpg");
    }
    #box2{
    widgiteeth: 300px;
    height: 300px;
    background-image: url(".html简单网页代码./imgithub是干什么的age/big.jpg");
    }
    
  • index.html增加元素
      <div id="box1"></div>
    <div id="box2"></div>
    
  • 实行打包指令:
    npm run build
    
  • 发现问题:
    • 大图无服务器怎样搭建法打包到entry.jshttps和http的差异文件中,index.html不在生成资源目录下。
    • 页面加载图片会在地址目录方位查approach找,导html个人网页无缺代码致页面加载图片时分html标签大图途径无appointment法找到
    • 处理办法:giti轮胎https和http的区别是什么品牌
    • 运用publiHTMLcPath : ‘dist/jappstores/’ //设置为index.html供给资源的途径,设置完后找悉数的资源都会去当时目录下找。
    • 将index.html放在dist/js/也能够处服务器装备理。

8、主动编译打包

  • 运用webpack开发服务器东西: whtml文件怎样翻开ehttp 302bpappleack-dev-server
  • 下载
    • npm install –httpwatch服务器地址在哪里看save-dev webpack-dev-server
  • wehttpwatchbpaapp是什么意思ck装备
     devServer: {
    contentBase: './dist'
    },
    
  • package装备
    • “start”: “webpack-dev-server –opeHTTPn”http协议
  • 编译打包运用并作业服务器地址在哪里看
    • npm s服务器租借多少钱一年thttp 500art

9、运用webpack插件

  • 常用的插件
    • 运用html-webpack服务器体系-pluapproachgin依据模板html生成引入scripthtml个人网githup官网页无缺代https和http的区别的页面
    • 运用cleapproveanhtml代码-webpack-plugin根除dist文件夹
    • 运用uglifyjs-webpack-plugin紧缩打包的js文件
  • 下载
    npm install --save-dev  html-webpack-plugin clean-webpack-plugin
    
  • webpack装备
       const HtmlWebpackPlug服务器租借多少钱一年in = require('htmlhtml个人网页无缺代码-webpaapproveck-plugin'); //主动giti生成http代理html文件的插html5件
    const CleanWebpahttp://192.168.1.approve1登录ckPlugin = require('clean-whttps和http的差异appstoreebpack-plugin'); //根除之前打包的文件
    plugins: [
    new HtmlWebpackPlugin({template: './inapp是什么意思dex.html'}),
    negiteew CleanWebpackPlugin(['dist']),
    ]
    
  • 创立页面: index.html
       <!DOCTYPE html&gtgithub永久回家地址;
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>webpgithuback test</title>
    </html代码head>
    <body>
    <div id="app"></div>
    <!--HTML打包文件github将主动经过script标签注入到此处-->
    &amappearancep;l服务器和电脑主机的差异t;/body>
    </htm服务器租借l>
    
  • 打包html5作业项目
    npmhttp协议 run build
    npm start
    

2.webpack.config.js文件装备。

const path = require('path');
const HtmlWebpacGitkPlugin = require('html-webpack-plug服务器装备in'); //主动生成htmhtml个人网页无缺代码l文件的插件
const CleanWebpackPlugin = require('clean-webpack-plugin'); //根Git除之前打包的文件
modgithub中文官网网页ule.exports =服务器体系 {
entry: './src/js/entry.js',
output: {
filename: 'bundle.js',
// pub服务器是什么licPath : 'dist/js/',
path: path.resolve(__dirname, 'digithub中文官网网页st/js')github中文官网网页
},
module: {
rules: [
{
test: /.css$/HTMhttp://192.168.1.1登录L,
use: [
'style-lhtml文件怎样翻开oader',
'css-loader'
]
},
{
test: /.(pnggitee|jpg|gif)$/,
use: [
{
loader: 'url-loader',
o服务器地址在哪里看ptions: {
limit: 8html简单网页代码192
}
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({template: './in服务器是什么dex.html'}),
new Cl服务器eanWebpackPlugin(['digithup官网stHTML']),
]
};