3.学习webpack配置 尝试打包ts文件

1.初始化项目并安装依赖

npm init -y 初始化一个新项目

使用npm i -d webpack webpack-cli typescript ts-loader给项目加上webpack的相关包(webpack工具和webpack命令行工具)

webpack webpack工具
webpack-cliwebpack命令行工具

typescriptTS包

ts-loader将ts和webpack工具整合的包

2.进行webpack和typescript的基本配置

webpack

新建一个webpack.config.js文件 这个文件是webpack在项目中的配置文件

javascript 复制代码
// nodejs的模块 帮助我们拼接路径
const path = require("path");

// webpack中所有的配置信息 都应该写在module.exports中
module.exports = {
  //指定入口文件
  entry: "./src/index.ts",
  // 指定打包文件所在的目录
  output: {
    //指定打包后的目录
    path: path.resolve(__dirname, "dist"),
    // 打包后文件的名字
    filename: "bundle.js",
  },
  // 指定webpack打包时 使用的模块
  module: {
    // 指定要加载的规则
    rules: [
      {
        // test指定的是规则生效的文件
        test: /\.ts$/, //匹配所有的以ts结尾的文件
        use: "ts-loader", //用tsloader来处理以ts结尾的文件
        exclude: /node-modules/, //排除文件
      },
    ],
  },
};

tsconfig.json

新建一个tsconfig.json文件 这个文件是typescript在项目中的配置文件

javascript 复制代码
{
  "compilerOptions": {
    //编译器的选项
    // target 用来指定ts编译为js的版本
    "target": "es6",
    "module": "es6",
    "strict": true
  }
}

package.json

在package.json中配置webpack的打包命令

javascript 复制代码
{
  "name": "part2",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "ts-loader": "^9.5.1",
    "typescript": "^5.7.2",
    "webpack": "^5.97.1",
    "webpack-cli": "^6.0.1"
  }
}

尝试打包一下

可以发现我们的打包是成功的,并且在dist目录中出现了bundle.js文件,这说明使用webpack打包 最基本的功能已经处理完了。

相关推荐
Wannaer5 分钟前
从 Vue3 回望 Vue2:响应式的内核革命
前端·javascript·vue.js
不灭锦鲤9 分钟前
xss-labs靶场基础8-10关(记录学习)
前端·学习·xss
zhuziheniaoer23 分钟前
rust-candle学习笔记11-实现一个简单的自注意力
笔记·学习·自然语言处理·rust
Bl_a_ck26 分钟前
--openssl-legacy-provider is not allowed in NODE_OPTIONS 报错的处理方式
开发语言·前端·web安全·网络安全·前端框架·ssl
懒羊羊我小弟27 分钟前
手写符合Promise/A+规范的Promise类
前端·javascript
互联网搬砖老肖28 分钟前
Web 架构之负载均衡会话保持
前端·架构·负载均衡
向日葵xyz1 小时前
Qt5与现代OpenGL学习(十一)OpenGL Widget鼠标控制直线旋转
开发语言·qt·学习
肥肥呀呀呀2 小时前
在Flutter上如何实现按钮的拖拽效果
前端·javascript·flutter
Zero1017132 小时前
【React的useMemo钩子详解】
前端·react.js·前端框架
养军博客2 小时前
spring boot3.0自定义校验注解:文章状态校验示例
java·前端·spring boot