iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >使用webpack打包ts代码的实现
  • 152
分享到

使用webpack打包ts代码的实现

2024-04-02 19:04:59 152人浏览 八月长安
摘要

目录使用 webpack 打包生成 package.JSON安装 cnpm安装 WEBpack 相关编写 webpack 配置文件创建 tsconfig.json修改 package

使用 webpack 打包

生成 package.json

本质上,webpack 是一个用于现代 javascript 应用程序的 静态模块打包工具。在我们的项目中要使用 webpack 首先应该初始化,生成的默认的 package.json,执行 npm init -y 后会在项目根目录下生成 package.json(其中 -y 是直接略过所有问答,直接都 yes)

在这里插入图片描述

安装 cnpm

接下来需要安装 webpack 所需依赖,我们可以使用 npm 或 cnpm 安装。这里说点题外话。npm 作为包管理器,由于服务器不在国内所以有的时候速度会慢一点,所以我们来安装淘宝团队的 cnpm,这个就是 npm 在国内的镜像,执行以下命令来安装 cnpm

npm install cnpm -g --reGIStry=https://registry.npm.taobao.org

使用 cnpm -v来检查是否安装成功

在这里插入图片描述

安装 webpack 相关

cnpm i -D webpack webpack-cli typescript ts-loader

i 是 install 的简写
-D 表示安装到开发环境,也就是安装并将依赖信息写在 package.json 中的 devDependencies中,等同于 --save-dev
webpack 安装打包工具的核心代码
webpack-cli webpack 命令行工具
typescript ts的核心包
ts-loader 必须安装这个才能让 ts 在 webpack 中使用

执行命令后,查看 package.json,多了 devDependencies 节点,说明安装成功啦

在这里插入图片描述

编写 webpack 配置文件

新建一个 webpack.config.js 文件到根目录

//引入一个包
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 指定规则生效的文件,以下匹配以 ts 结尾的文件
                test:/\.ts$/,
                //要使用的loader,用 ts-loader 处理以 ts 结尾的文件
                use: 'ts-loader',
                //要排除的文件
                exclude: /node_modules/
            }
        ]
    }
};

创建 tsconfig.json

上节我们已经讲了,先写这些:

{
  "compilerOptions": {
    "module": "ES2015",
    "target": "ES2015",
    "strict": true
  }
}

修改 package.json

 "build": "webpack"

增加位置如下:

在这里插入图片描述

使用webpack打包

命令:npm run build

在 webpack.config.js 中我们指定了入口文件为 index.ts,我们在里边随便编写一些内容

index.ts

function sum(a:number,b:number):number{
    return a+b;
}

console.log(sum(11,22));

在 webpack.config.js 中我们指定了打包文件的目录为 dist,打包后的文件名是 bundle.js,所以执行命令npm run build后就使用 webpack 进行了打包,结果如下:

在这里插入图片描述

到此为止,我们就实现了最简单的使用 webpack 打包的功能

安装插件

html-webpack-plugin

① 安装插件
执行 cnpm i -D html-webpack-plugin
html-webpack-plugin 帮助我们自动生成 html 文件

② 引入插件
webpack.config.js 中引入插件

//引入一个包
......
//引入插件
const HTMLWebpackPlugin = require("html-webpack-plugin")

//webpack 中的所有配置都应该写在 module.exports 中
module.exports = {
    ......

    //配置webpack插件
    plugins: [
        new HTMLWebpackPlugin(),
    ]
};

③打包
先执行 npm run build

这样目录下就生成了 html 文件

在这里插入图片描述

我们可以自定义标题或其他一些内容

	//配置webpack插件
    plugins: [
        new HTMLWebpackPlugin({
            title: "自定义标题"
        }),
    ]

还可以设置一个网页模板,我们可以在 src 下新建一个 index.html 做为模板

在这里插入图片描述

然后在 webpack.config.js 中将其设置为模板

	plugins: [
        new HTMLWebpackPlugin({
            template: "./src/index.html"
        }),
    ]

再次运行 npm run build 生成的网页就是根据刚才写好的模板生成的

在这里插入图片描述

webpack-dev-server

①、执行cnpm i -D webpack-dev-server
②、在 pages.json 中 scripts 节点下增加 "start": "webpack serve --open"

在这里插入图片描述

意思是启动 webpack 服务器,这样我们刚才生成的 html 会用默认浏览器打开

③、运行
直接点击上边截图的运行三角形,或者执行 npm start

如果报错 The mode option has not been set......

在这里插入图片描述

解决办法
在 webpack.config.js 中根节点下增加 mode: 'development'

(如果还处在上次命令,可以按 ctrl+c 终止命令)再次执行 npm start 即可打开默认浏览器

在这里插入图片描述

这个网页是实时更新的,我们修改 index.ts ,多输出一行文字,右侧浏览器也会自动输出

在这里插入图片描述

clear-webpack-plugin

这个插件的作用是每次编译会先清空编译文件夹下的文件,再生成,这样就保证了都是最新文件

①、安装

cnpm i -D clean-webpack-plugin

②、引入、配置

//引入clean插件
const { CleanWebpackPlugin } = require('clean-webpack-plugin')

 //配置webpack插件
    plugins: [
        new CleanWebpackPlugin(),
        ......
    ],

babel

babel 用来解决兼容性问题

①、安装

cnpm i -D @babel/core @babel/preset-env babel-loader core-js

②、配置
修改 webpack.config.js

......

//webpack 中的所有配置都应该写在 module.exports 中
module.exports = {
    //指定入口文件
    entry: "./src/index.ts",
    //指定打包文件所在目录
    output: {
        ......
        //告诉webpack不使用箭头函数
        environment: {
            arrowFunction: false
        }
    },
    //指定webpack打包时使用的模块
    module: {
        //指定要加载的规则
        rules: [
            {
                //test 指定规则生效的文件,以下匹配以 ts 结尾的文件
                test:/\.ts$/,
                //要使用的loader,用 ts-loader 处理以 ts 结尾的文件
                use: [
                    //配置babel
                    {
                        //指定加载器
                        loader:'babel-loader',
                        //设置 babel
                        options: {
                            //设置预定义的环境
                            presets:[
                                //指定环境插件
                                '@babel/preset-env',
                                //配置信息
                                {
                                    //要兼容的目标浏览器
                                    targets:{
                                        "chrome":88
                                    },
                                    //指定corejs版本
                                    "corejs":"3",
                                    //使用corejs的方式 usage表示按需加载
                                    "useBuiltIns":"usage",
                                }
                            ]
                        }
                    },
                    'ts-loader'
                ],
                //要排除的文件
                exclude: /node_modules/
            }
        ]
    },

    ......
};

加载器的顺序是从后往前执行,所以先用 ts-loader 将 ts 转为 js,然后使用 babel-loader 将新版本的 js 转换为 旧版本的 js

模块问题

新建 m1.ts 暴露一个 hi

在这里插入图片描述

index.ts 中引入 m1 并打印 hi

在这里插入图片描述

执行 npm run build 会报错:

在这里插入图片描述

这时我们需要修改 webpack.config.js 中配置,增加

 resolve: {
        extensions: ['.ts','.js']
    }

Resolve 配置 webpack 如何寻找模块对应的文件,在导入语句没带文件后缀时,webpack 会自动带上后缀去尝试访问文件是否存在。resolve.extensions 用于配置在尝试过程中用到的后缀列表

到此这篇关于使用webpack打包ts代码的实现的文章就介绍到这了,更多相关webpack打包ts内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用webpack打包ts代码的实现

本文链接: https://www.lsjlt.com/news/152683.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用webpack打包ts代码的实现
    目录使用 webpack 打包生成 package.json安装 cnpm安装 webpack 相关编写 webpack 配置文件创建 tsconfig.json修改 package...
    99+
    2024-04-02
  • 如何使用webpack打包ts代码
    今天小编给大家分享一下如何使用webpack打包ts代码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用 webpack ...
    99+
    2023-07-02
  • 教你使用webpack打包编译TypeScript代码
    TypeScript打包  webpack整合 通常情况下,实际开发中我们都需要使用构建工具对代码进行打包; TS同样也可以结合构建工具一起使用,下边以webpack为例介...
    99+
    2024-04-02
  • webpack搭建脚手架打包TypeScript代码
    创建文件夹 目录结构: dabaots 初始化 npm init -y生成package.json文件 目录结构: dabaots dabaots / package.jso...
    99+
    2024-04-02
  • webpack代码分片的实现
    目录背景CommonsChunkPluginsplitChunks配置异步加载资源总结背景 实现高性能应用其中最重要的一点就是尽可能地让用户每次只加载必要的资源,优先级不要太高的资...
    99+
    2024-04-02
  • webpack自动打包功能实现
    目录一、了解webpack二、在项目中安装和配置webpack三、webpack的打包四、webpack的自动打包一、了解webpack 当前web开发面临的困境1.文件依赖关系错综...
    99+
    2023-02-09
    webpack自动打包 webpack打包
  • webpack之基础打包优化的实现
    目录前言优化loader压缩代码gzip压缩抽离公共依赖包最后前言 webpack至今已经发展了5个版本,如果你还不会webpack,那么赶紧学习起来吧。webpack是web前端开...
    99+
    2024-04-02
  • Unity打包代码到DLL的实现
    使用Unity API PlayerBuildInterface.CompilePlayerScripts 将项目中的代码生成为 DLL 程序集 在 Editor 文件夹下新建脚本 ...
    99+
    2023-03-09
    Unity打包代码到DLL Unity打包代码
  • 使用Webpack打包的流程分析
    目录1、webpacks是什么?2、Webpack安装3、初始化项目4、使用webpack进行JS打包5、使用webpack进行CSS打包总结简单的说了一下webpack是干嘛的,和...
    99+
    2022-12-19
    使用Webpack打包 Webpack打包流程
  • webpack前端应用之基础打包实现
    目录前言:初识 Webpack 5一、前端工程化1、webpack2、webpack的使用:配置文件所需要的信息(五大配置属性)3、示例4、webpack中使用的loader二、we...
    99+
    2023-02-03
    webpack 基础打包 webpack 打包
  • Webpack自动清理打包目录的实现
    目录1. 通过 npm scripts 清理理构建目录;2. 使用 clean-webpack-plugin 插件清理;Webpack在打包的时候,会在指定输出文件夹下面生...
    99+
    2023-01-09
    Webpack自动清理打包目录 Webpack自动清理
  • webpack如何实现拆分、打包、压缩
    这篇文章主要介绍webpack如何实现拆分、打包、压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!步骤1.传统项目中的问题在不依赖任何自动化、模块化工具的项目中,通常我们的代码是这...
    99+
    2024-04-02
  • webpack-cli在webpack打包中的作用小结
    目录webpack & webpack-cliwebpack Introductionwebpack-cli 详解Referencewebpack & webpack...
    99+
    2024-04-02
  • vue3+ts使用APlayer的示例代码
    目录引言安装依赖代码APlayer.Vueplayer.ts效果图引言 自己弄新版博客想用APlayer,到github看了一圈没见有vue3版本的,所以就用基于Aplayer组件化...
    99+
    2022-11-13
    vue3 ts使用APlayer vue3使用APlayer
  • Webpack实现多页面打包的方法步骤
    目录1. 多页面应用(MPA)概念2. 多页面打包基本思路3. 多页面打包通用方案4. 多页面打包实现1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面...
    99+
    2023-01-09
    Webpack 多页面打包 webpack打包多页面
  • webpack-cli在webpack打包中的作用是什么
    这篇文章主要讲解了“webpack-cli在webpack打包中的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“webpack-cli在webpack打包中的作用是什么”吧!web...
    99+
    2023-06-30
  • 怎么使用setuptools打包Python代码
    本篇内容介绍了“怎么使用setuptools打包Python代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!setuptools是Pyth...
    99+
    2023-06-27
  • 模块打包工具webpack怎么使用
    这篇文章主要介绍“模块打包工具webpack怎么使用”,在日常操作中,相信很多人在模块打包工具webpack怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”模块打包工具...
    99+
    2024-04-02
  • webpack中怎么实现代码分片
    webpack中怎么实现代码分片,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。CommonsChunkPlugin虽然这个插件在webpack4当中已经不推荐使...
    99+
    2023-06-20
  • .NetCore多文件打包压缩的实现代码
    最近项目需要实现多文件打包的功能,尝试了一些方法,最后发现使用  ICSharpCode.SharpZipLib 最符合项目的要求。 具体实现如下: 1.在 Nuget 中安装  I...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作