移除JS、TS文件注释

在某些特殊交付场景下,我们提交的代码可能需要清除掉开发中的注释,逐条移除显然不现实。
于是编写一个简单的Python脚本,来清除不必要的注释,并不追求移除全部注释,只移除大部分行尾行内注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
import re

def remove_comments_from_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()

with open(file_path, 'w', encoding='utf-8') as file:
for line_number, line in enumerate(lines, start=1):
# 如果当前行包含http,则不移除注释
if 'http' in line:
file.write(line)
else:
# 移除行尾的注释
line = re.sub(r'//.*', '', line)
# 移除行内的注释
line = re.sub(r'/\*.*?\*/', '', line)
file.write(line)
# 输出已处理的行数
print(f'Removed comments from line {line_number} in file {file_path}')

def remove_comments_from_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.ts') or file.endswith('.tsx'): # 修改条件,同时处理.ts和.tsx文件,js项目则为 js、jsx
file_path = os.path.join(root, file)
remove_comments_from_file(file_path)

# 这里的文件夹路径更改为你要移除注释工程的具体路径
folder_path = '/path/project_folder'
remove_comments_from_folder(folder_path)
print('Comment removal process completed.')

保存并执行这段py脚本即可。移除后记得编译一下看看哪里是否存在错误移除导致编译失败。可按需求调整移除内容,修改代码。

PS: 希望所有人都用不到这种特殊场景的脚本代码。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×