惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

zodream梦想开源/个人编程日记

文件解析笔记-zodream梦想开源/个人编程日记 密码本开发笔记之读写与保存-zodream梦想开源/个人编程日记 SkiaSharp 把 pixel byte[] 转成 SKBitmap-zodream梦想开源/个人编程日记 nas 使用 Docker 安装 gogs-zodream梦想开源/个人编程日记 复制 android 手机中的文件到电脑-zodream梦想开源/个人编程日记 周报:寻找优质的周刊-zodream梦想开源/个人编程日记 开发日志:对Markdown的代码块新增引用来源支持-zodream梦想开源/个人编程日记 周报:怎么写技术类的教程文章-zodream梦想开源/个人编程日记 css display:flex 布局尺寸超出问题-zodream梦想开源/个人编程日记 周报:SEO优化的思考-zodream梦想开源/个人编程日记 Edge 浏览器不适用 Edge Image Viewer 打开图片 -zodream梦想开源/个人编程日记 SEO 学习笔记(一) 内容来源-zodream梦想开源/个人编程日记 PHP 实现双因素身份认证(2FA)-zodream梦想开源/个人编程日记 WPF MVVM 获取List 多选数据-zodream梦想开源/个人编程日记 Burp Suite 抓包-zodream梦想开源/个人编程日记 使用 indexnow 注意事项-zodream梦想开源/个人编程日记 Godot 使用字体图标 例如: Iconfont、FontAwesome-zodream梦想开源/个人编程日记 angular 15 对指定页面进行访问限制-zodream梦想开源/个人编程日记 CSS 使用 column-count 实现瀑布流出现内容分割的解决办法-zodream梦想开源/个人编程日记 input 确认按键事件在手机端不生效-zodream梦想开源/个人编程日记 C# 使用socket 进行通讯-zodream梦想开源/个人编程日记 Maui开发中Windows应用开启管理员权限-zodream梦想开源/个人编程日记 Maui 中自定义控件-zodream梦想开源/个人编程日记 angular 14 使用 ng-template 实现tree 结构显示-zodream梦想开源/个人编程日记 c# 动态安装和卸载dll-zodream梦想开源/个人编程日记 慎用 CompositionTarget.Rendering-zodream梦想开源/个人编程日记 c# 重写 c++ 程序笔记:数据初始化-zodream梦想开源/个人编程日记 源码编译 aseprite-zodream梦想开源/个人编程日记 记录一下字符串分隔split各语言之间的不同-zodream梦想开源/个人编程日记 c# Gzip解码无头内容-zodream梦想开源/个人编程日记
typescript 开发小程序编译当前文件-zodream梦想开源/个人编...
zodream · 2020-03-25 · via zodream梦想开源/个人编程日记

typescript 开发小程序编译当前文件

需求

typescript 开发微信小程序时,每次查看效果都很麻烦,编译过程太长了,怎么只编译当前编辑的文件呢?

工具

  1. vs code
  2. Code Runner 插件
  3. gulp

第一步

要把当前文件的路径传给 gulp

要在当前工作区增加一个设置

.vscode\settings.json

{
    "code-runner.executorMapByFileExtension": {
        ".ts": "gulp build --file=$fullFileName",
    },
}

12345

以下一些语言必须用以下方式才有用,用拓展名是没有用的

java, c, cpp, javascript, php, python, perl, ruby, go, lua, groovy, powershell, bat, shellscript, fsharp, csharp, vbscript, typescript, coffeescript, swift, r, clojure, haxe, objective-c, rust, racket, ahk, autoit, kotlin, dart, pascal, haskell, nim, d, lisp

{
    "code-runner.executorMap": {
        "typescript": "gulp build --file=$fullFileName",
    }
}

12345

Code Runner 有右键菜单项 Run Code 就是执行当前文件的

这样在 ts 文件就会运行命令 gulp build --file=

$fullFileName 表示文件的绝对路径

第二步

guipfile.js 中增加 build 任务

var gulp = require('gulp'),
    ts = require("gulp-typescript"),
    tsProject = ts.createProject('tsconfig.json');

gulp.task('build', async() => {
    // 这里必须取得相对路径,不然最终的生成文件就会在 dist 文件夹下加全路径
    var file = process.argv[3].substr(7).replace(__dirname + '\\', '');
    await gulp.src(file)
        .pipe(tsProject())
        .pipe(gulp.dest('dist'));
});

123456789101112

第三步

右键执行 ts 测试以下

增强版

如果我使用一个方法既可以编译所有的,又可以编译一个文件,该怎么做

修改guipfile.js

var gulp = require('gulp'),
    ts = require("gulp-typescript"),
    tsProject = ts.createProject('tsconfig.json');

// 获取输入的路径
function getSrcPath(src) {
    if (process.argv.length < 4) {
        return src;
    }
    if (process.argv[2] !== 'build') {
        return src;
    }
    return process.argv[3].substr(7).replace(__dirname + '\\', '').replace('\\', '/');
}
// 获取输出的路径
function getDistPath(dist) {
    if (process.argv.length < 4) {
        return dist;
    }
    if (process.argv[2] !== 'build') {
        return dist;
    }
    return 'dist';
}

gulp.task('build', async() => {
    await gulp.src(getSrcPath('src/**/*.ts'))
        .pipe(tsProject())
        .pipe(gulp.dest(getDistPath('dist/')));
});

12345678910111213141516171819202122232425262728293031

这样执行 gulp build 即可编译所有 ts 文件

右键 Run Code 只编译当前 ts 文件

再也不用等很长时间了

转载请保留原文链接: https://zodream.cn/blog/id/107.html