webpack 3.X研究

  目前webpack已经到了3.X版本,为了方便经过最新版本打包整个前端应用,如今开始对webpack操做进行简单介绍。css

  1、webpack安装html

  在安装webpack以前须要注意,webpack是经过npm进行安装的,而npm存在于node.js中,相似于redhat系统的yum,都是包管理工具,只不过npm是前端框架安装管理工具而已,在安装npm须要安装node.js前端

  一、登陆node.js官网:vue

    https://nodejs.org/zh-cn/node

  二、在官网选择TLS稳定版本进行安装,若是是mac系统能够经过自身的brew工具,直接进行安装(brew install nodejs)webpack

  三、在安装完毕后,直接输入nodejs -v和npm -v若是有输出值,说明安装完毕web

  3.一、npm安装完毕后,本身建立一个文件夹my-web,今日该文件夹后执行 npm init --yes(或者-y)初始化一个package.json的文件,这个文件里会包含以下信息npm

{
  "name": "vue-loader-demo",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --inline --hot"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {},     #若是是--save会出如今这个{}内
  "devDependencies": {    #若是是--save-dev会出现这个{}内
    "babel": "^6.23.0",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "css-loader": "^0.28.7",
    "style-loader": "^0.19.0",
    "vue-hot-reload-api": "^2.2.3",
    "vue-html-loader": "^1.2.4",
    "vue-loader": "^13.5.0",
    "vue-style-loader": "^3.0.3",
    "vue-template-compiler": "^2.5.3"
  }
}

 

  四、安装完毕后,因为npm在国外,因此能够经过安装国内的淘宝cnpm加快安装速度json

    登陆到https://npm.taobao.org/api

    找到安装步骤里的安装执行命令,在终端执行:

    npm install -g cnpm --registry=https://registry.npm.taobao.org

  五、 安装完毕后,webpack能够经过cnpm命令进行安装

  六、执行cnpm install webpack --save(--save表示永久存在,在生产环境须要,--save-dev表示在开发环境中存在)

  执行完毕后,webpack安装完毕

  

  2、webpack文件说明

    webpack文件为webpack.config.js文件,格式以下:

const path = require('path')  //定义path
module.exports={
entry:{
one:'./src/one.js' //入口文件
},
output:{
path: path.resolve(__dirname, 'dist'), //这个是node.js中引入绝对路径的命令
filename: 'output.js' //webpack执行后的出口文件
},
module:{

},
plugins:[],
devServer:{},
}

   在3.X时候能够定义多个入口与出口文件

const path = require('path')  //定义path
module.exports={
    entry:{
        one:'./src/one.js', //入口文件
        two:'./src/two.js'
    },
    output:{
        path: path.resolve(__dirname, 'dist'), //这个是node.js中引入绝对路径的命令
        filename: '[name].js' //webpack执行后的出口文件,【name】表示和每个对应入口文件
    },
    module:{

    },
    plugins:[],
    devServer:{},
}

   

  3、webpack-dev-server

  3.X开始webpack-dev-server无需单独下载,只须要下载webpack后就会跟着自动下载,同时在webpack.config.js文件中填写配置,还能够实现热更新

const path = require('path')  //定义path
module.exports={
    entry:{
        one:'./src/one.js', //入口文件
        two:'./src/two.js'
    },
    output:{
        path: path.resolve(__dirname, 'dist'), //这个是node.js中引入绝对路径的命令
        filename: '[name].js', //webpack执行后的出口文件,【name】表示和每个对应入口文件
        publicPath: '/temp/' //把临时修改都更新到temp目录下,这个目录是不创建的,是虚拟在内存中的目录
    },
    module:{

    },
    devServer:{//配置dev-server
        contentBase: path.resolve(__dirname, './'),
        host: '192.168.2.104',
        compress:true,//HTML5压缩
        port:9000
    },
}

  若是感受在终端敲webpack-dev-server很麻烦,能够在package.json文件中将它写在scripts下,而后执行npm run server就直接运行了

{
  "name": "webpack3learn",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "server": "webpack-dev-server"//在这里增长这个命令,能够简化敲命令的长度
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

 

  4、模块

  一、css打包

  使用css打包功能必须使用css.loader和style.loader这两个配合使用,首先登陆npmjs的官网找到css-loader:

  https://www.npmjs.com/搜索css-loader

  找到相关命令,安装:

cnpm install css-loader style-loader --save-dev

  安装完毕后,查看模块填写参数,webpack.config.js中:

 module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    },
const path = require('path')  //定义path
module.exports = {
    entry: {
        one: './src/one.js', //入口文件
        two: './src/two.js'
    },
    output: {
        path: path.resolve(__dirname, 'dist'), //这个是node.js中引入绝对路径的命令
        filename: '[name].js', //webpack执行后的出口文件,【name】表示和每个对应入口文件
        publicPath: '/temp/' //把临时修改都更新到temp目录下,这个目录是不创建的,是虚拟在内存中的目录
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    },
    devServer: {//配置dev-server
        contentBase: path.resolve(__dirname, './'),
        host: '192.168.2.104',
        compress: true,//HTML5压缩
        port: 9000
    },
}
View Code

在src目录下添加one.css文件

body{
    background:#666;
    color:#fff;
}
相关文章
相关标签/搜索