用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(快速定位代码出错位置)等内容

相关推荐

  1. webpack 构建自己vue-cli

    2024-03-19 19:48:05       42 阅读
  2. Webpack构建流程

    2024-03-19 19:48:05       39 阅读
  3. 【使用vue-cli构建项目详细介绍】

    2024-03-19 19:48:05       64 阅读
  4. Webpack、Vite在Vue项目中常用

    2024-03-19 19:48:05       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 19:48:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 19:48:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 19:48:05       87 阅读
  4. Python语言-面向对象

    2024-03-19 19:48:05       96 阅读

热门阅读

  1. 逐笔成交、委托数据的因子计算

    2024-03-19 19:48:05       48 阅读
  2. 企业常用管理制度清单

    2024-03-19 19:48:05       38 阅读
  3. 每日一题:LeetCode1.两数之和

    2024-03-19 19:48:05       47 阅读
  4. 个人工作常用Linux相关总结

    2024-03-19 19:48:05       41 阅读
  5. MATLAB 2023a:开启机器学习新纪元,探索无限可能

    2024-03-19 19:48:05       43 阅读
  6. 使用 @JsonIgnore注解后 获取不到参数值问题

    2024-03-19 19:48:05       47 阅读
  7. 五种主流数据库:数据汇总

    2024-03-19 19:48:05       48 阅读
  8. 面经(六)武汉超星

    2024-03-19 19:48:05       40 阅读
  9. Python学习记录(五):图像读取

    2024-03-19 19:48:05       49 阅读
  10. vue与jqyery的区别

    2024-03-19 19:48:05       39 阅读