独立BokehJS示例

时间:2018-01-19 18:28:59

标签: typescript bokeh bokehjs

作为打字稿的新手用户(但是经验丰富的Bokeh用户),我正试图选择其中一个BokehJS examples并独立运行 - 这是在Bokeh git repo的文件层次结构之外。

例如,如果我想运行burtin示例,请复制.ts.htmltsconfig.json(来自{{的顶层) 1}}目录)进入一个新文件夹。然后,我可以修改examples文件中的linkscript标记,以指向相应资源的本地副本。当我尝试运行.html时,出现以下错误:

tsc burtin.ts

如何告诉打字稿编译器在哪里找到$ tsc burtin.ts burtin.ts(2,16): error TS2304: Cannot find name 'Bokeh'. burtin.ts(2,16): error TS2503: Cannot find namespace 'Bokeh'. burtin.ts(3,27): error TS2304: Cannot find name 'Bokeh'. burtin.ts(5,18): error TS2503: Cannot find namespace 'Bokeh'. burtin.ts(6,16): error TS2503: Cannot find namespace 'Bokeh'. burtin.ts(8,24): error TS2304: Cannot find name 'Bokeh'. burtin.ts(9,3): error TS2304: Cannot find name 'Bokeh'. burtin.ts(10,3): error TS2304: Cannot find name 'Bokeh'. Bokeh示例中的tsconfig.json具有以下内容:

burtin

也许{ "extends": "../tsconfig.json", "files": [ "../../src/coffee/api/typings.d.ts", "burtin.ts" ] } 告诉编译器在哪里查找导出的BokehJS名称,但是我不清楚是否需要有完整的bokeh源代码来编译示例(typings.d.ts文件不是包含在typings.d.ts)。

有关如何设置此示例并单独运行它的任何见解将不胜感激。

更新:即使conda install bokeh引发了错误,它仍会生成有效tsc,并且html页面会正确显示。我不清楚是否有更优化的方式来设置开发环境。

1 个答案:

答案 0 :(得分:1)

正在运行tsc burtin.ts忽略tsconfig.json。您应该正在运行tsc -p tsconfig.json(或tsc -p .)。这样,当找不到打字(d.ts文件)时,您将收到错误。打字应该是conda和npm包的一部分,但看起来我们在这里有一个回归,所以现在你将不得不求助于克隆散景的存储库或应对* .d.ts文件。这些仅用于编译,并且不在运行时使用。有了打字或不打字,只要没有语法或其他基本错误并且noEmitOnError设置为false,TypeScript仍会编译* .ts文件并生成有效的* .js文件。这是因为TypeScript的类型系统在生成* .js文件之前被完全擦除,并且不会根据程序的类型生成代码。

鉴于在bokehjs中的TypeScript支持正在积极开发中,并且正在使用TypeScript从头开始重写bokehjs,因此几周内该领域应该有重大改进。特别是,将提供覆盖整个库的新的自动生成的打字。理想情况下,将包含一个bokeh.d.ts文件。