使用webpack打包ts代码

目录

基本功能实现步骤:

webpack在ts中的插件

生成html文件插件:html-webpack-plugin

webpack开发服务器插件:webpack-dev-server

清除dist目录插件:clean-webpack-plugin

Babel

使用流程

下载安装

修改配置文件


通常情况下,实际开发中需要使用构建工具对代码进行打包,TS也可以结合构建工具进行使用,以webpack为例,介绍如何结合构建工具使用TS。

基本功能实现步骤:

  • 项目初始化,生成package.json:npm init -y

  • 下载构建工具

安装使用webpack时需要的依赖:cnpm i -D webpack webpack-cli typescript ts-loader

  • 新建webpack的配置文件webpack.config.js

webpack.config.js:

const path = require("path")  //引入一个包,node.js的一个模块,主要用来帮助拼接路径

// webpack中所有的配置信息都应该写再module.exports中

module.exports = {

        //指定入口文件,等于程序中的主文件

        entry:"./src/index.js" ,

        //指定打包完成的文件所在的目录

        output:{ 

                //指定打包后的文件目录

                path:path.resolve(__dirname,"dist"),  // 直接在原有path后面拼接

                //打包后的文件的名称

                filename:"bundle.js", 

         },

        // 指定webpack打包时要使用的模块

        module:{

                //指定loader加载的规则

                rules:[

                                {

                                        // test 指定规则生效的文件

                                       test:/\.ts$/, // 表示匹配所有的以 .ts 结尾的文件,即所有的ts文件

                                        // use指定要使用的loader

                                       use:"ts-loader", // use指定要使用的loader

                                        //excludes指定要排除的文件夹

                                        excludes:/node-modules/, // 所有文件路径中有node-modules的文件都排除, 即排除node-modules下所有文件。

                                }

                ]

        }

}

  • 新建ts的配置文件tsconfig.json

tsconfig.json:

{

        // 简单写一下,内容可更改

        "compilerOptions":{

                "modules":"ES2015",

                "target":"ES2015",

                "script":true,

        }

}

  • 在package.json文件中添加属性:"build":"webpack",可以通过build命令直接执行webpack

package.json:

  • 在终端npm run build来执行打包。

打包成功:

webpack在ts中的插件

生成html文件插件:html-webpack-plugin

安装插件:cnpm i -D html-webpack-plugin

有助于生成html文件,命令完成后,在package.json中多出配置选项

需要对webpack.config.js进行配置

首先,需要引入插件

const path = require("path") 

//引入html插件

const HTMLWebpackPlugin = require( "html-webpack-plugin" )

module.exports = {

        entry:"./src/index.js" ,

        output:{ 

                path:path.resolve(__dirname,"dist"), 

                filename:"bundle.js", 

         },

        module:{

                rules:[

                                {

                                       test:/\.ts$/,

                                       use:"ts-loader",

                                        exclude:/node-modules/,

                                }

                ]

        },

        //配置webpack插件

        plugin:{

                new HTMLWebpackPlugin(), // 效果自动生成html文件,并且自动引入相关资源

                // 也可以对生成的html进行自定义

                 new HTMLWebpackPlugin(options:{

                        title:"这是一个自定义的title",

                } ),

                // 也可以根据自定义html模板生成html文件

                 new HTMLWebpackPlugin(options:{

                        template:"./src/index.html", //html模板文件位置

                } ),

        }

}

webpack开发服务器插件:webpack-dev-server

安装插件:cnpm i -D webpack-dev-server

webpack开发的服务器插件,相当于在项目中安装了一个内置的服务器,项目可以直接在这个服务器运行,这个服务器和webpack是直接相关联的,可以根据项目的改变自动刷新。

手动添加package.json配置文件内容:"start":"webpack serve --open chrome.exe"\

表示启用webpack服务器并且用chrome打开网页

终端:npm start 启动服务器,并且能自动打开网页

清除dist目录插件:clean-webpack-plugin

安装插件:cnmp i -D clean-webpack-plugin

每次编译前,将dict目标目录先清空再把新文件放进去,确保现在目标文件夹下的文件都是最新的,避免有旧文件出现的情况。

const path = require("path") 

const HTMLWebpackPlugin = require( "html-webpack-plugin" )

//引入clean插件

const {CleanWebpackPlugin }= require( "clean-webpack-plugin" )

module.exports = {

        entry:"./src/index.js" ,

        output:{ 

                path:path.resolve(__dirname,"dist"), 

                filename:"bundle.js", 

         },

        module:{

                rules:[

                                {

                                       test:/\.ts$/,

                                       use:"ts-loader",

                                        exclude:/node-modules/,

                                }

                ]

        },

        //配置webpack插件

        plugin:{

                new HTMLWebpackPlugin(),

                new CleanWebpackPlugin(),

        },

        //用来设置引用模块

        resolve:{ //必需的

                extensions:['.ts','.js']  //凡是以.ts、.js结尾的文件都可以作为模块使用

        }

}

Babel

使用流程

下载安装

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

@babel/preset-env预置环境,必要的;core-js模拟js运行环境的代码,提高兼容性

package.json自动生成属性:

修改配置文件

webpack.config.js

const path = require("path") 

const HTMLWebpackPlugin = require( "html-webpack-plugin" )

const {CleanWebpackPlugin }= require( "clean-webpack-plugin" )

module.exports = {

        entry:"./src/index.js" ,

        output:{ 

                path:path.resolve(__dirname,"dist"), 

                filename:"bundle.js", 

                //配置打包环境

                environment:{

                        arrowFunction:false, //告诉webpack打包时候不使用箭头函数

                }

         },

        module:{

                rules:[

                                {

                                       test:/\.ts$/,

                                       use:[ 

                                                //从后往前执行,谁在后面先执行谁

                                                //然后再用babel把新版js转换成旧版js

                                                {

                                                        //先指定使用的加载器

                                                        loader: "babel-loader"

                                                        //设置babel

                                                        options:{

                                                                // 设置预定义的环境

                                                                presets:[

                                                                        [

                                                                                //指定环境的插件

                                                                                "@babel/preset-env",

                                                                                // 配置信息

                                                                                {

                                                                                       //指定要运行的浏览器的版本

                                                                                        targets:{"chrome":"88"},

                                                                                       //指定corejs的运行版本

                                                                                       "corejs":"3",

                                                                                       //使用corejs的方式

                                                                                       "useBuiltIns":"useage",//按需加载

                                                                                }

                                                                        ]

                                                                ]

                                                        }

                                                }

                                                 "babel-loader" //配置简单的直接写babel-loader就可以

                                                "ts-loader", //先用ts-loader把ts转成js

                                        ],

                                        exclude:/node-modules/,

                                }

                ]

        },

        plugin:{

                new HTMLWebpackPlugin(),

                new CleanWebpackPlugin(),

        },

        resolve:{

                extensions:['.ts','.js']  //凡是以.ts、.js结尾的文件都可以作为模块使用

        }

}

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用webpack打包typescript文件,您需要安装以下依赖项: 1. `webpack`: 用于打包应用程序。 2. `webpack-cli`: 用于在命令行上运行webpack。 3. `ts-loader`: 用于加载typescript文件并将其转换为JavaScript。 4. `typescript`: 用于编写typescript代码。 安装这些依赖项后,您可以创建一个webpack配置文件,在此文件中指定您的入口点和输出文件。以下是一个例子: ```javascript // webpack.config.js module.exports = { entry: './src/index.ts', output: { filename: 'bundle.js', path: __dirname + '/dist' }, resolve: { extensions: ['.ts', '.js'] }, module: { rules: [ { test: /\.ts$/, loader: 'ts-loader', exclude: /node_modules/ } ] } }; ``` 在此配置中,我们指定了`entry`和`output`属性,以及`resolve`和`module`属性。`entry`指定应用程序的入口点,`output`指定打包后的文件名和输出目录。`resolve`属性用于指定要解析的文件扩展名。在这种情况下,我们使用`.ts`和`.js`扩展名。`module`属性使用`rules`属性指定将要使用的加载器。在这种情况下,我们使用`ts-loader`来加载和转换typescript文件。 现在,您可以在命令行上运行webpack,它将使用您的配置文件打包您的应用程序。例如: ``` webpack --config webpack.config.js ``` 这将打包您的应用程序,并将输出文件保存在`dist/bundle.js`中。 注意:在运行webpack之前,您需要确保您的typescript代码是有效的,并且没有任何错误。您可以使用`tsc`命令来编译typescript代码,并查找任何错误。例如: ``` tsc src/index.ts ``` 这将编译`src/index.ts`文件,并生成一个JavaScript文件。如果有任何错误,它们将显示在命令行上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值