我无法在我的 Angular 应用程序 ( https://docs.bokeh.org/en/latest/docs/dev_guide/bokehjs.html ) 中使用 BokehJS 库。当我尝试从我的应用程序调用库时,我会收到以下错误:
ERROR in ./node_modules/@bokeh/bokehjs/build/js/lib/index.js 3:9
Module parse failed: Unexpected token (3:9)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| export { version } from "./version";
| export { index } from "./embed";
> export * as embed from "./embed";
| export * as protocol from "./protocol";
| export * as _testing from "./testing";
这是在“新”计算机上重现问题的详细分步方法(我在两台不同的机器上尝试过,它们最后都得到完全相同的错误):
- 安装 nodejs:https ://nodejs.org/en/
- 安装 angular-cli:
npm install -g @angular/cli
- 在当前目录中初始化一个新的 Angular 项目:
ng new angular10BokehJSexample
- 进入新项目目录:
cd angular10BokehJSexample
- (可选)检查示例 Angular 应用程序是否有效:
npm start
并在 URL http://localhost:4200 上打开浏览器 - 安装 BokehJS:
npm install @bokeh/bokehjs
- 打开您喜欢的文本编辑器并更改文件
src/app/app.module.ts
。在顶部添加以下行和其他导入:import * as Bokeh from '@bokeh/bokehjs'
- (可选)如果您在此阶段启动服务器,它应该仍然可以正常工作,这意味着可以成功导入 BokehJS(旧版本的 Angular 不是这种情况)
- 仍在文件
src/app/app.module.ts
中,更改文件末尾的类声明,使其看起来像这样:
export class AppModule {
private testBokeh(){
var item = JSON.parse("just a test");
Bokeh.embed.embed_item(item);
}
}
(注意:这只是一个存根,代码不起作用。我已经整理了一个应该可以工作的更复杂的代码,但这足以重现我的问题)
- 再次运行
npm start
,由于这个问题开头提到的错误,它无法编译。
关于我做错了什么的任何想法?我不是前端开发人员,所以我绝对不在我的舒适区。任何帮助将不胜感激。