使用webpack/gulp构建TypeScript项目的方法示例
总体来看,TypeScript项目构建主要分两步:
- 将ts项目整体转换为js项目
- 按常规套路,对该 js项目进行打包构建
构建过程中,对 ts文件的转换不再使用命令行方式,所以 tsc的配置参数,需要通过 tsconfig.json文件设置。
初始化 tsconfig.json
tsc--init
之后,我们会在项目目录中得到一个完整冗长的 tsconfig.json配置文件。这个文件暂且不必改动。
{
"compilerOptions":{
/*BasicOptions*/
//"incremental":true,/*Enableincrementalcompilation*/
"target":"es5",/*SpecifyECMAScripttargetversion:'ES3'(default),'ES5','ES2015','ES2016','ES2017','ES2018','ES2019'or'ESNEXT'.*/
"module":"commonjs",/*Specifymodulecodegeneration:'none','commonjs','amd','system','umd','es2015',or'ESNext'.*/
//"lib":[],/*Specifylibraryfilestobeincludedinthecompilation.*/
//"allowJs":true,/*Allowjavascriptfilestobecompiled.*/
//"checkJs":true,...
}
}
使用webpack构建
全局安装 webpack
npmi-gwebpackwebpack-cli
本地安装 ts-loader和 typescript
npmi-Dts-loadertypescript
创建 webpack.config.js
constpath=require('path')
module.exports={
mode:'production',
entry:{
main:'./index.ts'
},
module:{
rules:[
{
test:/\.ts$/,
use:'ts-loader',
exclude:/node_modules/
}
]
},
output:{
filename:'webpack-bundle.js',
path:path.resolve(__dirname,'dist'),
libraryTarget:'commonjs',
},
resolve:{
extensions:['.ts']
}
}
运行webpack
经过上述配置之后,在控制台项目路径内,中直接运行 webpack。
%webpack
Hash:1c028195d238a71fe1c7
Version:webpack4.41.3
Time:726ms
Builtat:2019/12/17下午2:56:12
AssetSizeChunksChunkNames
index.js1.61KiB0[emitted]main
Entrypointmain=index.js
[0]./a.ts147bytes{0}[built]
[1]./b.ts147bytes{0}[built]
[2]./index.ts318bytes{0}[built]
[3]./c.ts378bytes{0}[built]
在dist中,生成了一个转换且合并完成的webpack-bundle.js文件。
使用 gule构建
全局安装 gule
npmi-ggulp
本地安装
- gulp
- browserify
- tsify
- vinyl-source-stream
npmi-Dgulpbrowserifytsifyvinyl-source-stream
创建 gulpfile.js文件
constgulp=require('gulp')
consttsify=require('tsify')
constbrowserify=require('browserify')
constsource=require('vinyl-source-stream')
gulp.task('default',()=>{
returnbrowserify({
basedir:'.',
debug:true,
entries:['index.ts'],
cache:{},
packageCache:{}
}).plugin(tsify).bundle()
.pipe(source('gulp-bundle.js'))
.pipe(gulp.dest('dist'))
})
运行gulp
经过上述配置之后,在控制台项目路径内,中直接运行gulp。
%gulp [15:37:30]Usinggulpfile~/ts-learn/bundle/gulpfile.js [15:37:30]Starting'default'... [15:37:32]Finished'default'after1.4s
在dist中,生成了一个转换且合并完成的gulp-bundle.js文件。
配置npm指令
我们将这两个指令整合到项目指令中:
"scripts":{
"test":"ts-nodetest",
"build-webpack":"webpack",
"build-gulp":"gulp",
"build":"npmrunbuild-webpack"
}
这里分别针对webpack/gulp添加了构建指令,并将build指令设置为默认使用webpack构建。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。