zoukankan      html  css  js  c++  java
  • webpack学习笔记

    1.第一种使用方法:命令行(没有配置文件)--把app.js打包成bundle.js

    1 webpack app.js -o bundle.js

    2.第二种使用方法:配置文件:

      如果配置文件的名称不是webpack.config.js可以在命令行中修改(假设你的配置文件为webpack.conf.js)

    webpack --config webpack.conf.js

    3.es6文件的引入与导出

    1 //引入
    2 import sum from './sum'
    3 //sum.js文件导出
    4 export default function (a,b) {
    5     return a+b
    6 }

    4.common.js文件的引入与导出

    1 //引入
    2 var minus = require('./minus')
    3 //minus.js文件导出
    4 module.exports = function (a,b) {
    5     return a - b
    6 }

    5.AMD文件的引入与导出

     1 //引入与使用
     2 require (['./muti'],function (muti) {
     3     console.log('muti(2,3)=',muti(2,3))
     4 })
     5 
     6 //导出muti.js文件
     7 
     8 define(function (require,factory) {   
     9         'use strict'                  
    10     return function (a,b) {           
    11               return a*b              
    12     }                                 
    13 })                                    

     6.Es6的编译配置:当需要编译ES6语法的时候使用:

    //安装
    //最新版本
    npm install babel-loader@8.0.0-beta.0 @babel-core
    //普通版本
    npm install --save-dev babel-loader babel-core
    //只知道需要打包,但是还不知道用什么规范来打包,于是需要给loader指定一个规范;
    //主要的规范有:
    es2015
    es2016
    es2017
    env
    babel-preset-react
    babel-preset-stage 0-3

      presets的安装:

    1 npm install @babel/preset-env --save-dev//最新
    2 npm install babel-preset-env  --save-dev//普通

      targets的相关配置:

    1 targets
    2 targets.browsers
    3 targets.browsers:"last 2 versions"
    4 targets.browsers:">1%"
    5 browserslist
    6 Can I use

      loaders以及规范和targets的配置文件:

     1 //webpack.config.js
     2 module.exports = {
     3     entry:{
     4         app:'./app.js'
     5     },
     6     output:{
     7         filename:'[name].[hash:8].js'
     8     },
     9     module:{
    10         rules:[
    11             {
    12                 test:/.js$/,
    13                 use:{
    14                    loader: 'babel-loader',
    15                     options:{
    16                        presets:[
    17                            ['@babel/preset-env',{
    18                                targets:{
    19                                    // browsers:['>1%','last 2 versions']
    20                                    browsers:['last 2 versions']
    21                                    // chrome:'52'
    22                                }
    23                            }]//给babel指定presets
    24                        ]
    25                     }
    26                 },
    27                 exclude:'/node_modules/'
    28             }
    29         ]
    30     }
    31 }

    测试的es6代码:

    1 let func = () =>{}
    2 const NUM =45
    3 let arr = [1,2,3]
    4 let arrB = arr.map(item =>item*2)
    5 console.log('new Set(arrB)',new Set(arrB))

    命令行webpack:结果let 等被转化为var ,但是部分没有被转换:

    一些函数和方法需要使用Babel Polyfill和Babel Runtime 

    比如:

    1 Generator
    2 Set
    3 Map
    4 Array.from
    5 Array.prototype.includes

    Babel Polyfill:是一个全局垫片,为应用准备的,

    安装:

    1 npm install babel-polyfill --save

    引入app.js文件

    1 import "babel-polyfill"

    Babel Runtime Transform:是一个局部垫片,为开发框架准备;

    安装:

    1 npm install babel-plugin-transform-runtime --save-dev
    2 npm install babel-runtime --save

    配置文件:.babelrc:实际是一个json文件

     2 {
     3   "presets":[
     4     [
     5       "@babel/preset-env",{
     6           "targets":{
     7                 "browsers":["last 2 versions"]
     8           }
     9     }]
    10   ],
    11   "plugins":["@babel/transform-runtime"]
    12 }

     7.在启动webpack时,需要给package.json添加配置:

    1 "scripts": {
    2   "dev": "webpack --mode development",
    3   "build": "webpack --mode production"
    4 }
  • 相关阅读:
    python 小练习 5
    python 小练习4
    python 小练习3
    python 小练习2
    遇到后缀名为whl的库的安装方法
    hdu1394Minimum Inversion Number
    Triangle
    codeforces B. Pasha and String
    F
    C
  • 原文地址:https://www.cnblogs.com/yangguoe/p/9881193.html
Copyright © 2011-2022 走看看