FuckDotdot
用于解决微信小程序typescript无法绝对路径引用的问题
https://github.com/Taoduhui/ShiyiAsm
原理:
替换字符串,所以请注意alias的key不要和代码重复,否则会被替换,可以使在前加特殊符号的方式表示
使用方法:
-
将FuckDotdot解压至tsconfig.json同级目录下
-
配置FuckDotdot.xml
<FuckDotdot> <AliasSettings> <GlobalAlias key="[@ShiyiFramework](/user/ShiyiFramework)">miniprogram/ShiyiFramework</GlobalAlias> </AliasSettings> <TargetFileTypes> <FileType type="*.js"></FileType> <FileType type="*.json"> <Alias key="@Npm">miniprogram/miniprogram_npm</Alias> </FileType> <FileType type="*.src.wxss" to="*.wxss"> <Alias key="@Npm">miniprogram/miniprogram_npm</Alias> </FileType> </TargetFileTypes> <ExcludeSetting> <Exclude>miniprogram/miniprogram_npm</Exclude> <Exclude>node_modules</Exclude> </ExcludeSetting> </FuckDotdot>
注意:
如果是源码ts中的引入,FileType的值应该是js。
Alias的路径没有 " ./ ",末尾也不加 " / "
正反斜杠无所谓
FileType中的to表示会将结果输出到带有新的扩展名的文件中
Exclude表示需要跳过的目录
可以在.vscode/setting,json中通过添加如下代码将输出文件隐藏
{ "files.exclude": { "**/*.wxss": { "when": "$(basename).src.wxss" //当存在.src.wxss同名文件时将.wxss隐藏 } } }
对于其他的配置了FileType文件同样有效,不限于js,但对于其他文件会直接替换掉Alias,请注意备份,以免误操作
-
tsconfig.json中添加paths
{ "compilerOptions": { "baseUrl": "./", "paths": { "[@ShiyiFramework](/user/ShiyiFramework)/*":["./miniprogram/ShiyiFramework/*"] } }
-
代码中引用
import { ShiyiPageBase } from "[@ShiyiFramework](/user/ShiyiFramework)/ShiyiPage/Base/ShiyiPageBase";
-
将微信开发者工具的 详情 --> 本地设置 --> 自定义处理命令替换成以下命令
npm run tsc && FuckWxDotdot.exe
-
开始编译
-
参数 **-w [sec]**自动检测更改 ,sec为可选参数,用于设定在检测到变更后sec毫秒内无变更执行替换操作
./FuckWxDotdot.exe -w 200