如何从以前的typescript(.ts)文件中删除已编译的JS文件
How to delete compiled JS files from previous typescript(.ts) files?
我正在学习Angular 2快速入门教程。以下是我的文件夹结构-
├── gulpfile.js
├── index.html
├── js
| ├── app.component.js
| └── boot.js
├── source
| ├── app.component.ts
| └── boot.ts
├── node_modules
├── module 1
└── module 2
我的typescript文件在source/
目录中。我正在将它编译到js/
目录中。我用的是打字稿。
问题是,例如,当我将文件boot.ts
重命名为bootstrap.ts
并再次编译时,会创建相应的bootstrap.js
文件,但旧的boot.js
文件仍保留在js/目录中。
现在文件夹结构如下-
├── gulpfile.js
├── index.html
├── js
| ├── app.component.js
| └── bootstrap.js
| └── boot.js
├── source
| ├── app.component.ts
| └── bootstrap.ts
├── node_modules
├── module 1
└── module 2
我想通过gump任务自动删除这个boot.js
。如何做到这一点?
使用最新的tsc,您应该可以使用以下命令进行清理
tsc --build --clean
我当前的tsc版本供您参考
$ tsc --version
Version 3.5.3
请注意,--clean标志是项目引用的一部分,只能与它一起使用。
我来到这里看到了标题,在混合物中加入gullow并不是一个解决方案。以下是我解决问题的方法。
用rm -rf ./js/ &&
作为npm构建脚本的前缀
"scripts": {
...
"build": "rm -rf ./js/ && tsc",
...
},
rm -rf ./js/
f强制删除r下面的所有文件和目录/bash 中的js/doku-rm
&&
表示,如果成功,则执行下一个命令&;在bash 中
回答时的标题:";如何从以前的typescript(.ts)文件中删除已编译的JS文件"
此解决方案的灵感来自@Akash Kurian Jose的回答。由于他的解决方案取决于你使用的操作系统,我添加了一个适用于任何操作系统的解决方案:
添加rimraf作为开发依赖项:
"devDependencies": {
"rimraf": "^3.0.1"
}
然后将这3个脚本添加到您的包中。json:
"rimraf": "./node_modules/rimraf/bin.js",
"clean" : "rimraf js/",
"compile": "npm run clean && tsc -p ./"
当执行npm run compile
时,js/
文件夹将在编译前被清除。
安装gulp-del.
$ npm install --save-dev gulp del
创建任务。
var gulp = require('gulp');
var del = require('del');
gulp.task('clean:output', function () {
return del([
'js/'
]);
});
gulp.task('default', ['clean:output']);
你可以在这里找到更多关于gump del的信息。
此解决方案是对GabrielBB解决方案的改进。
安装轮辋npm i rimraf -D
添加以下npm脚本
"clean": "rimraf js/",
"prebuild": "npm run clean",
"build": "tsc",
这就利用了npms自动预脚本
Windows用户可以在 替换";CCD_ 16";与您的CCD_ 18中声明的实际CCD_。 如果省略 即使您的主要终端应用程序是PowerShell,它也应该正确运行。package.json
上添加以下预构建脚本-一个批处理cmd脚本-它将在构建package.json
:{
"scripts": {
"prebuild": "if exist <outDir> (rmdir /Q /S <outDir>)",
"build": "tsc"
},
}
if exist
命令,它将抛出一个错误。
我从这里使用脚本。
在package.json中添加脚本:
"build": "node jsDelete.js && npx tsc -w"
并添加jsDelete.js:
const fs = require('fs');
const Path = require('path');
const deleteFolderRecursive = function(path) {
if (fs.existsSync(path)) {
fs.readdirSync(path).forEach((file, index) => {
const curPath = Path.join(path, file);
if (fs.lstatSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
deleteFolderRecursive('path_to_folder')
如果有人会遇到这个问题:我试着用tsc --build --clean
但有时如果你重命名了很多.ts文件,这个命令在mac:上有效
删除.js文件,如果你重命名了很多.ts(这是为Mac用户):
find . -name '*.js' ! -path './node_modules/*' -delete
如果tsconfig文件中的declaration: true
,您可能需要:
find . -name '*.d.ts' ! -path './node_modules/*' -delete
在删除文件
git commit
使用Git和Bash 破解
git add . && git stash && find . ''( -name '*.js' -o -name '*.js.map' '') ! -path './node_modules/*' -delete && git restore . && git stash pop
简单地移动到ur src文件,并使用此模式运行删除文件
cd src
rm -rf */**/*.js
您可以运行这里提到的:tsc -b YOUR_ENTRYPOINT_LIST --clean
。
示例:
tsc -b src test --clean
将根据各自的tsconfig.json
构建src
和test
目录,然后清除(移除)生成的.js
文件。
您可以有一个主tsconfig.json
,只需在每个子文件夹配置文件中使用{extend: "path_to_main_tsconfig"}
即可。
建议:
在运行此命令之前,请使用--dry
进行尝试,看看会发生什么。
- 正在使用Dropzone.js删除服务器上已重命名的文件
- 使用javascript删除上传的文件
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 如何在Javascript/Jquery中删除所选文件
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 如何动态添加或删除Chrome扩展、内容脚本、javascript文件
- 为什么当我上传文件并点击更多上传另一个文件的第一个删除
- Javascript:下载后从文件夹中删除文件
- 使用Gulp删除所有例外文件
- 如何从 Chrome 中的文件输入中删除“未选择文件”工具提示
- Google PageSpeed Insights说“删除渲染阻塞js文件”
- 选择并删除要解析的文件和/或文件夹
- 烧瓶 - 下载后删除文件
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- 正在添加用于文件删除的eventListener
- 如何最好地在文件删除时触发事件
- 文件删除 JSON 响应
- 进程无法访问该文件,因为另一个进程正在使用该文件(删除文件夹)
- PhoneGap文件删除不起作用
- 文件删除未通过客户参数