用webpack 构建自己的vue-cli

步骤1 :新建文件夹 my-vue-cli 

步骤2: 在文件夹中输入npm init  (拥有npm管理环境),之后可以安装我们所需要的包

步骤3:安装 webpack、webpack-cli (webpack打包工具,webpack 执行依赖webpack-cli)

             npm i webpack webpack-cli -D

步骤4:在跟目录下新建src(放项目主要代码)、public(放公用静态资源)

public/index.html

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>my-vue-cli</title>

</head>

<body>

  <div id="app"></div>

</body>

</html>

src/main.js

import { add } from './tools/add.js'
console.log(add(1, 2))
console.log('我是main.js')

src/tools/add.js

export const add = (a, b) => {
  return a + b
}

步骤5:入口文件(webpack打包需要从入口文件开始查找,一直到打包所有引用文件)

进行入口文件的配置,在根目录下新建webpack.config.js

const path = require('path')

module.exports = {
  // 模式 开发模式
  mode: 'development',
  // 入口文件 main.js
  entry: {
    main: './src/main.js'
  },
  // 输出
  output: {
    // 输出到 dist文件夹
    path: path.resolve(__dirname, './dist'),
    // js文件下
    filename: 'js/chunk-[contenthash].js',
    // 每次打包前自动清除旧的dist
    clean: true,
  }
}

步骤6:配置打包命令

package.json

"scripts": {
    "build": "webpack"
},

此刻,运行命令 npm run build,就能发现打包成功  出现dist/js/chunk-c3454564....,接着我们需要在index.html文件中 引入打包出来的js ,并且可以打包html 文件才可以。

步骤7:如何打包html

打包html需要用到html-webpack-plugin插件,npm i html-webpack-plugin -D。需要在webpack.config.js 中配置

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  // 刚刚的代码...
  
  // 插件都放 plugins 中
  plugins: [
    new HtmlWebpackPlugin({
      // 选择模板 public/index.html
      template: './public/index.html',
      // 打包后的名字
      filename: 'index.html',
      // js文件插入 body里
      inject: 'body',
    }),
  ]
}

此刻在运行npm run build可以看到html被打包,且打包后的html 自动引入了打包后的js 文件

步骤8:打包CSS 

在src 文件夹下创建styles 文件夹,用来存放样式 src/styles/index.scss,在 入口文件main.js中引入  import './styles/index.scss'

需要安装 sass、sass-loader:可以将scss代码转换成css       css-loader 使webpack具有打包css的能力       sass-resources-loader 可选 支持打包全局公共scss 文件       mini-css-extract-plugin:可将css代码打包成一个单独的css文件

npm i 
sass
sass-loader
sass-resources-loader
mini-css-extract-plugin
-D

配置webpack.config.js

// 刚才的代码...
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = {
  // 刚才的代码...
  plugins: [
    // 刚才的代码...
    new MiniCssExtractPlugin({
      // 将css代码输出到dist/styles文件夹下
      filename: 'styles/chunk-[contenthash].css',
      ignoreOrder: true,
    }),
  ],
  module: {
    rules: [
      {
        // 匹配文件后缀的规则
        test: /\.(css|s[cs]ss)$/,
        use: [
          // loader执行顺序是从右到左
          MiniCssExtractPlugin.loader,
          'css-loader',
          'sass-loader',
          // {
          //   loader: 'sass-resources-loader',
          //   options: {
          //     resources: [
          //       // 放置全局引入的公共scss文件
          //     ],
          //   },
          // },
        ],
      },
    ]
  }
}

此时打包,可以看到index.html 文件引入了css  打包图片用asset-module

此时我们完成了打包html、css、 js 和图片 下篇文章继续介绍 babel(将高级语法转换成低级语法,兼容一些低版本的浏览器)  打包vue   热启动  环境区分 构建打包进度条 以及source-map(快速定位代码出错位置)等内容

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值