2

默认情况下,在 PHPStorm 6 中,编译后的 *.js 与 *.ts 文件创建在同一文件夹中。

我需要的是编译后的 *.js 和 *.d.js 与 *.ts 文件位于不同的子目录中。

在简历中:

  • 我有根文件夹“项目”

  • 我有一个所有 *.ts 文件所在的子文件夹“ts”。

  • 我有一个子文件夹“scripts”,我希望编译后的 *.js 和 *.d.js 在其中。

如何使用 PHPStorm TypeScript 文件观察器完成此操作?

我在 File Watcher 对话框的 Output 字段中尝试了几个宏,例如:

$FileParentDir$/scripts/$FileNameWithoutExtension$.js:$FileParentDir$/scripts/$FileNameWithoutExtension$.js.map

但他们都没有工作。

4

2 回答 2

5

File Watcher 配置中的“输出路径”字段只是告诉 IDE 在哪里查找创建的文件(用于自动同步),对正在运行的程序没有任何意义。TypeScript 编译器有 --out 选项,它告诉编译器将生成的文件放在哪里

请尝试以下方法:

参数: --sourcemap $FileName$ --out $ProjectFileDir$/scripts/$FileNameWithoutExtension$.js

工作目录:$FileDir$

输出路径:$ProjectFileDir$/bin/$FileNameWithoutExtension$.js:$ProjectFileDir$/bin/$FileNameWithoutExtension$.js.map

希望这可以帮助

于 2013-04-18T14:13:19.930 回答
3

感谢@CrazyCoder 的参考资料,我(终于!)设法使它正常工作。

您必须在Arguments参数中指定输出文件路径,而不是在Output路径中。

诀窍是--out不接受文件夹路径,而是您必须使用文件路径。

有关完整功能配置的参考,请参见图片。

在此配置中,组织是:

  • ts/:*.ts文件。

  • scripts/: 编译*.js& *.js.map&*.d.ts文件。

在此处输入图像描述

注意:在较新版本的编译器中,正确的参数是declaration(不带尾随s)而不是declarations

于 2013-04-18T14:02:01.730 回答