我正在使用TypeScript编写基于JavaScript的测试。
我想要一个File file=new File(getFilesDir() + "ShoppingList.ur");
try{
FileOutputStream fileOutputStream =new FileOutputStream(file);
ObjectOutputStream data=new ObjectOutputStream(fileOutputStream);
data.writeObject(toShare);
data.close();
fileOutputStream.close();
}catch(IOException e){
e.printStackTrace();
}
uriToSend=Uri.fromFile(file);
Intent shareIntent=new Intent(Intent.ACTION_SENDTO);
shareIntent.addCategory("*/*");
shareIntent.putExtra(Intent.EXTRA_STREAM,uriToSend);
startActivity(Intent.createChooser(shareIntent,getString(R.string.sendTo)));
file.delete();
命令,以便能够正确处理所有文件的转换,这是关键部分。我认为使用多个tsconfig.json文件是这里的方法。
我有这个结构:
tsc --watch
我想将TypeScript文件放在src目录中,并将它们转换为目标目录。
我的问题是 - 如果您有一个可以将文件列表作为输入的bash脚本,那么如何将文件转换为各自的目标目录?
,例如,输入文件:
/tests
/e2e
tsconfig.json
/src
/target
/unit
tsconfig.json
/src
/target
所需的输出文件:
/home/you/projects/x/test/e2e/src/a.ts
/home/you/projects/x/test/e2e/src/b.ts
/home/you/projects/x/test/e2e/src/c.ts
/home/you/projects/x/test/unit/src/foo.ts
/home/you/projects/x/test/unit/src/bar.ts
/home/you/projects/x/test/unit/src/baz.ts
/home/you/projects/x/test/e2e/target/a.js
/home/you/projects/x/test/e2e/target/b.js
/home/you/projects/x/test/e2e/target/c.js
/home/you/projects/x/test/unit/target/foo.js
/home/you/projects/x/test/unit/target/bar.js
/home/you/projects/x/test/unit/target/baz.js
命令是否有办法将这些文件转换为一行一行命令到各自的目标目录?
我认为这可能非常棘手。我可能不得不按照他们的名字对它们进行分组,并分别对每个组进行分析。那会更难。
答案 0 :(得分:1)
我认为您不能让原生tsc --watch
支持该项目结构,但您可以使用gulp和gulp-typescript。它们允许您在几个不同的TypeScript项目上设置同步监视,每个项目都有自己的 tsconfig.json 。
如果这些子目录之间存在依赖关系,请考虑使用lerna。否则,您可能会在目标目录中找到令人惊讶的布局。额外级别的目录是最初的问题让我对此进行了研究。使用lerna
,您将设置单独的 package.json 文件,这些文件记录了依赖项。然后lerna bootstrap
可以负责设置符号链接以解析引用。
使用lerna
,您可能希望将某些 package.json 文件标记为"private": true
,如果它们不打算发布到npm。
答案 1 :(得分:0)
我创建了一个工具来执行此操作:
github.com/ORESoftware/tsc-multi-watch
它将在您的项目中搜索/tsconfig.*\.json/
个文件,并为每个文件生成一个tsc -w进程。
不仅如此,它还解决了tsc - watch的另一个缺陷。 tsc --watch无法解释添加到项目中的新文件。
当将tsc -w
文件添加到项目中时, tsc-multi-watch将重新启动正确的.ts
进程。