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打包 最基本的功能已经处理完了。

相关推荐
zhangxingchao21 分钟前
Kotlin常用的Flow 操作符整理
前端
IT_陈寒2 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端
Pedantic3 小时前
SwiftUI 手势笔记
前端·后端
橙子家3 小时前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user20585561518134 小时前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州4 小时前
CSS aspect-ratio 属性完全指南
前端
Pedantic6 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘6 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆6 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl