我尝试在TypeScript中创建自定义UI插件
这是我采取的步骤
tsc
命令从这些.ts文件中生成.js文件tns plugin add <local plugin path>
以包含创建的插件但我在第3步编译错误,因为我导入语句如下
import { ContentView } from "ui/content-view";
import...
&#13;
我在这里引用了一个示例https://github.com/NathanWalker/nativescript-cardview/blob/master/cardview.ios.ts
我的问题是示例中的cardview.ios.ts&#39; nativescript-cardview&#39;正在编译到cardview.io.js?这似乎不可能......
答案 0 :(得分:0)
在插件中,您引用了作者创建的演示应用程序,并使用该演示中的tns-core-modules的声明文件。查看 tsconfig.json
中包含 tns-core-modules.d.ts 的at this line您可以按照这种做法测试案例,对于您的发布,您可以从app node_modules文件夹创建tns-core-modules(和参考)声明文件的相对路径,如done here
由于package.json中的旁注noEmiOnError标记将允许翻译继续而不会挂起错误。
答案 1 :(得分:0)
感谢您链接到您的回购。 NativeScript's docs声明&#34;如果您使用的是转换程序,请确保在您的插件中包含已转换的JavaScript文件&#34;。
您的package.json将cardview.js指定为入口点,但您已编译的JavaScript文件尚未添加到repo中。我通过在\ dist目录中提交已转换的文件,在nativescript-midi plugin中解决了这个问题。该插件使用ES 6编写,但转换为ES 5以供使用。为了确保src和dist目录保持同步,我使用git pre-commit钩子自动运行build命令并提交结果。如果克隆nativescript-midi repo,则可以在.git / hooks / pre-commit中查看它。为插件使用此方法的好处是,它还允许未使用TypeScript的开发人员使用它。