独立的 BokehJS 示例
Standalone BokehJS Example
作为 typescript 的新手(但 Bokeh 的老用户),我试图将 BokehJS examples 和 运行 中的一个独立使用——在文件之外Bokeh git 存储库的层次结构。
例如,如果我想 运行 burtin
示例,我复制 .ts
、.html
和 tsconfig.json
(从顶部开始-examples
目录的级别)放入新文件夹中。然后,我可以修改 .html
文件中的 link
和 script
标记,以指向相应资源的本地副本。当我尝试 运行 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
? burtin
示例中的 tsconfig.json
具有以下内容:
{
"extends": "../tsconfig.json",
"files": [
"../../src/coffee/api/typings.d.ts",
"burtin.ts"
]
}
也许 typings.d.ts
告诉编译器在哪里寻找导出的 BokehJS 名称,但不清楚我是否需要完整的 bokeh 源代码库来编译示例(typings.d.ts
文件不是'包含在你 conda install bokeh
).
任何关于如何设置此示例和 运行 它独立的见解将不胜感激。
更新: 即使 tsc
抛出错误,它仍然会产生一个有效的 burtin.js
并且 html 页面显示正确。我只是不清楚是否有更优化的方法来设置开发环境。
运行 tsc burtin.ts
无视tsconfig.json
。您应该改为 运行 tsc -p tsconfig.json
(或 tsc -p .
)。这样,当找不到输入(d.ts 个文件)时,您会收到错误消息。 Typings 应该是 conda 和 npm 包的一部分,但看起来我们在这里有回归,所以现在你将不得不求助于克隆 bokeh 的存储库或处理 *.d.ts 文件。这些仅在编译时是必需的,在运行时不使用。不管有没有打字,TypeScript 仍然会编译 *.ts 文件并生成有效的 *.js 文件,只要没有语法或其他基本错误并且 noEmitOnError
设置为 false
。这是因为TypeScript的类型系统在生成*.js文件之前被完全擦除,没有根据程序的类型生成代码。
鉴于 bokehjs 中的 TypeScript 支持正在积极开发中,并且 bokehjs 正在用 TypeScript 从头开始重写,几周内应该会在这方面做出重大改进。特别是,将提供覆盖整个库的新的自动生成类型。理想情况下,将包含一个散景。d.ts 文件。
作为 typescript 的新手(但 Bokeh 的老用户),我试图将 BokehJS examples 和 运行 中的一个独立使用——在文件之外Bokeh git 存储库的层次结构。
例如,如果我想 运行 burtin
示例,我复制 .ts
、.html
和 tsconfig.json
(从顶部开始-examples
目录的级别)放入新文件夹中。然后,我可以修改 .html
文件中的 link
和 script
标记,以指向相应资源的本地副本。当我尝试 运行 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
? burtin
示例中的 tsconfig.json
具有以下内容:
{
"extends": "../tsconfig.json",
"files": [
"../../src/coffee/api/typings.d.ts",
"burtin.ts"
]
}
也许 typings.d.ts
告诉编译器在哪里寻找导出的 BokehJS 名称,但不清楚我是否需要完整的 bokeh 源代码库来编译示例(typings.d.ts
文件不是'包含在你 conda install bokeh
).
任何关于如何设置此示例和 运行 它独立的见解将不胜感激。
更新: 即使 tsc
抛出错误,它仍然会产生一个有效的 burtin.js
并且 html 页面显示正确。我只是不清楚是否有更优化的方法来设置开发环境。
运行 tsc burtin.ts
无视tsconfig.json
。您应该改为 运行 tsc -p tsconfig.json
(或 tsc -p .
)。这样,当找不到输入(d.ts 个文件)时,您会收到错误消息。 Typings 应该是 conda 和 npm 包的一部分,但看起来我们在这里有回归,所以现在你将不得不求助于克隆 bokeh 的存储库或处理 *.d.ts 文件。这些仅在编译时是必需的,在运行时不使用。不管有没有打字,TypeScript 仍然会编译 *.ts 文件并生成有效的 *.js 文件,只要没有语法或其他基本错误并且 noEmitOnError
设置为 false
。这是因为TypeScript的类型系统在生成*.js文件之前被完全擦除,没有根据程序的类型生成代码。
鉴于 bokehjs 中的 TypeScript 支持正在积极开发中,并且 bokehjs 正在用 TypeScript 从头开始重写,几周内应该会在这方面做出重大改进。特别是,将提供覆盖整个库的新的自动生成类型。理想情况下,将包含一个散景。d.ts 文件。