首页 > 其他分享 >webpack5的基础配置

webpack5的基础配置

时间:2022-11-08 01:33:05浏览次数:104  
标签:npm index webpack5 配置 基础 ts js webpack config

npm init -y ==> 生成package.json文件
npm i typescript -g ==> 全局安装ts编译器 tsc

tsc -h ==> tsc 的帮助信息

tsc --init ==》 创建tsc的配置文件 tsconfig.json文件

新建src/index.ts ==》 原终端执行 tsc ./src/index.ts 编译命令 ==》 自动生成与index.ts同级的index.js 编译好的js文件
let hello: string = 'hello hi' ==> var hello = 'hello hi';

网址 https://www.typescriptlang.org/play ==》 左侧输入ts代码 右侧自动生成对应编译后的js

【以下webpack的配置】
配置常见webpack: => 只是一个工具
安装包:
》 npm i webpack webpack-cli webpack-dev-server -D ==> 需要三个包 webpack webpack-cli webpack-dev-server
区分生成环境和开发环境 ==》 不同配置不同依赖 ==》 可以先分别各自配置 最后用插件合并配置

build文件里==》 webpack的配置
webpack.base.config.js ==》 公共基础配置
webpack.config.js ==》 入口
webpack.dev.config.js ==> 开发环境配置文件
webpack.pro.config.js ==> 生产环境配置文件

 entry: './src/index.ts', //指定入口文件
  output: {
    filename: 'app.js', //指定输出
  },
  resolve: {
    extensions: ['.js', '.ts', '.tsx'], //扩展名
  },

module: {
    rules: [
      {
        test: /\.tsx?$/i,
        use: [
          {
            loader: 'ts-loader', //需要安装对应的loader  再次安装typescript 本地-D
          },
        ],
        exclude: /node_modules/,
      },
    ],
  },  
npm i ts-loader typescript -D    ==> //需要安装对应的loader  再次安装typescript 本地-D

const HtmlWebpackPlugin = require('html-webpack-plugin')
plugins: [
  new HtmlWebpackPlugin({
    //安装插件html-webpack-plugin   通过一个模板自动生成网站首页 并把输出文件自动嵌入到这个文件中
    template: './src/tpl/index.html',
  }),
],
npm i html-webpack-plugin -D   ==>  安装插件


创建src/tpl/index.html   ==> 模板文件   ==>  <div class="app"></div>

开发环境的配置 ===》 module.exports = {
                        devtool: 'cheap-module-eval-source-map', //开启source-map  开发环境
                      }
生成环境配置 ==》 const { CleanWebpackPlugin } = require('clean-webpack-plugin')

                  module.exports = {
                    //插件  自动清空dist目录
                    plugins: [new CleanWebpackPlugin()],
                  }

所有配置文件入口==》 插件  webpack-merge   ==》 把两个配置文件合并
                  // 引入插件webpack-merge   用来合并配置
                  const merge = require('webpack-merge')//现在不支持 报错 改为下面的引入方式
                  const { merge } = require('webpack-merge')
                  // 引入三个配置文件
                  const baseConfig = require('./webpack.base.config')
                  const devConfig = require('./webpack.dev.config')
                  const proConfig = require('./webpack.pro.config')

                  module.exports = (env, argv) => {
                    let config = argv.mode === 'development' ? devConfig : proConfig //定义config  确定下如果是是开发环境就用开发环境的配置  否则用生成环境的配置
                    return merge(baseConfig, config) //最后将baseConfig 和 config合并
                  }

                  // let config = process.NODE_ENV === 'development' ? devConfig : proConfig
                  // module.exports = merge(baseConfig, config)

【以下 修改npm 的脚本】
打开package.json文件 ==> 更改入口文件 "main": "index.js" ==》 "main": "./src/index.ts",
编写启动开发环境的命令 ==》 npm start
启动 需要 ==> webpack-dev-server
指定mode 参数 ==》 将当前的环境变量设置为development ==> --mode=development
指定配置文件 ==》 --config ./build/webpack.config.js

        "start": "webpack-dev-server --mode=development --config ./build/webpack.config.js",

终端执行npm start命令   ===》  http://localhost:8080/    正常打开网页

【修改index.ts】 把字符串插入页面中
let hello: string = 'hello hi'
document.querySelectorAll('.app')[0].innerHTML = hello

【构建生产环境的脚本】
脚本名“build"
"build": "webpack --mode=production --config ./build/webpack.config.js",

  执行 npm run build   ==》 生成了dist目录   自动生成了模板index.html  构建好的app.js
                          且将构建好的app.js已经自动嵌入模板
                           <script defer="defer" src="app.js"></script>

标签:npm,index,webpack5,配置,基础,ts,js,webpack,config
From: https://www.cnblogs.com/aroyny/p/16868026.html

相关文章

  • vite配合element-plus并配置vite.config.js按需加载出现的问题
    一开始项目vite版本是1  然后创建vite.config.js出现模块““vite“”没有导出的成员“defineConfig”  后面就把vite升级到2  升级完之后跑项目出现这个问......
  • 【luffy】后台配置、数据库配置、User表配置、前台配置、安装axios
    目录1.关于环境变量的问题2.路飞后台配置之封装logger3.路飞后台配置之封装全局异常4.路飞后台配置之二次封装response5.路飞数据库配置1.关于环境变量的问题1.相......
  • Docker介绍和Docker安装配置
    Dockers:是一种虚拟化容器技术,解决了以前在Linux安装MySQL等软件的繁琐步骤,而且某个软件工作出问题可能导致其他服务不可用。docker为每一个软件提供了容器互不干扰(在run......
  • sublime配置php
    sublime下载直接从sublime的官网下载安装文件:https://www.sublimetext.com/万物的起始:安装插件管理工具packagecontrol使用Ctrl+、(数字1左边那个)快捷键或者通过View......
  • Linux虚拟机配置
    1、安装linux虚拟机下载&安装VirtualBoxhttps://www.virtualbox.org/要开启CPU虚拟化可以去任务管理器查看是否开启  2.下载&安装Vagranthttps://app.va......
  • springboot多环境配置
    springboot整合多个环境配置springboot默认读取配置文件名称application,且多个环境配置文件必须按照如下命名Application-dev.yml开发环境application-test.yml......
  • grafana agent 配置支持faro-web-sdk试用
    faro-web-sdk对于grafana周边的使用属于一个all-in-one模式的,都是通过grafanaagent进行转发处理的参考架构  实际玩法实际上并不是需要grafancloud,实际上基于......
  • MySql -基础学习2- 创建数据库表
    CREATETABLEIFNOTEXISTS`stdent`(`id`INT(4)NOTNULLAUTO_INCREMENTCOMMENT'学员id',`name`VARCHAR(30)NOTNULLDEFAULT'匿名'COMMENT'姓名',`paw`VA......
  • java基础2
    类型转换Java运算时,需要用到类型转换运算中不同类型数据先转化为同一类型,然后进行运算两种转换方式强制转换自动转换publicclassDemo05{publics......
  • vue基础
    ExerciseApplicationHelloWorld<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"......