webpack

webpack成神之路(一)

2019-05-11  本文已影响43人  AAA前端

webpack是干什么的网上一堆,就不赘述了。现在从零开始学习webpack;

  1. 初始化项目
git init // git 初始化
npm init  // 创建package.json.
image.png
  1. 安装webpack webpack-cli
cnpm i webpack webpack-cli --save-dev
  
image.png
  1. 现在就可以使用webpack了,我们先来创建一个src目录,在下面创建一个index.js;index.js内容console一段话
console.log('哈哈哈')
image.png
  1. 命令行运行webpack


    image.png
image.png
  1. 我们在根目录下创建一个html文件,并引入main.js。打开网页,打开控制台,可以看到输出了"哈哈哈";


    image.png
    image.png
  2. 我们试一下能不能require其他js。在src下创建一个a.js。里面console.log('我是 a.js'); 在index.js中 require('./a.js');

    image.png
  1. 当然如果我们不想用默认打包方式可以创建webpack.config.js;在里面配置我们的个性化打包方式。


    image.png
  2. webpack.config.js中的一些简单的配置;

const path = require('path');

module.exports = {
    mode: 'production', //开发模式 development  生产模式production
    entry: './src/index.js', // 入口
    output:{
        filename: "index.[hash:8].js",      // 打包后的文件名,带上8位数的hash值
        path: path.resolve(__dirname, 'build')   // 打包后的绝对路径 path自带模块相对路径转换绝对路径
    }
}
image.png
  1. 当然我们也可以重命名webpack.config.js。比如我们加webpack.config.test.js
  1. 好了把webpack.config.test.js文件删除,package.json也回去。现在打包后的文件我是用vscode插件启动的index.html。当然webpack肯定有自己启动服务的插件。webpack-dev-server
image.png
{
  "name": "webpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "serve": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.31.0",
    "webpack-cli": "^3.3.2",
    "webpack-dev-server": "^3.3.1"
  }
}
const path = require('path');

module.exports = {
    mode: 'production', //开发模式 development  生产模式production
    entry: './src/index.js', // 入口
    output:{
        filename: "index.[hash:8].js",      // 打包后的文件名,带上8位数的hash值
        path: path.resolve(__dirname, 'build')   // 打包后的绝对路径 path自带模块相对路径转换绝对路径
    },
    devServer:{
        port: 1234, // 端口号    不能6666-6669 ,安全限制在chrome中不能成功
        progress: true, // 加上进度条
        contentBase: './', //静态服务的目录。默认当前根目录,如果index.html在src下,这里就要改为./src
        open: true, //自动打开页面
        compress: true, //压缩
    }
}
上一篇 下一篇

猜你喜欢

热点阅读