无法在angular2中使用SystemJS加载phoenix js库
Cannot load phoenix js library with SystemJS in angular2
我遵循了 Angular2 打字稿快速入门教程 (here)。
现在我正在尝试包含 phoenix.js 包,以便我可以连接到我的 Elixir Phoenix 频道。
我已经将 this package 的 phoenix 添加到我的 package.json 并安装了它。
我在 systemjs.config.js 中添加了一行,如下所示:
'phoenix': 'node_modules/phoenix/web/static/js/phoenix.js'
我正在尝试像这样将其导入我的 Angular2 服务(我使用的是 ES6 并已通读 this issue):
import { Socket } from 'phoenix';
我收到错误
app/app.phoenix_channels.service.ts(2,24): error TS2307: Cannot find module 'phoenix'.
我实际上并不是 100% 确定 SystemJS 配置文件是如何包含的以及 运行。它包含在应用程序之前的 HTML 中,但我在编译打字稿时看不到它被包含或解析。
我已经完成了这个 但我不知道如何使用 Angular 教程提供的框架加载依赖项。
我尝试将 additional_deps 添加为 systemjs.config.js 的键,如下所示:
additional_deps: {
src: 'node_modules/phoenix/priv/static/phoenix.js',
inject: 'libs'
},
但这似乎不起作用。
我怎样才能加载这个依赖项,以便我可以从这个库中导入?
你有运行时的JS文件,但错误是编译错误,因为它正在寻找一个typescript文件。对于库,使用 TypeScript 定义文件,但有些库不支持 TypeScript,因此我们需要安装具有类型定义的外部模块。
有些JS项目你可能找不到定义文件,你需要自己写。或者您可以按照您链接到的答案中的张贴者所做的去做。只需声明随机 any
类型变量(不要导入)
declare var Socket: any;
现在您可以使用 Socket
。但问题是您没有任何强类型或智能感知。
幸运的是,看起来有人为 phoenix 写了一个定义文件
npm install --save-dev @types/phoenix
这应该可以正常工作。就运行时而言,您的 SystemJS 配置看起来应该不错。
我遵循了 Angular2 打字稿快速入门教程 (here)。
现在我正在尝试包含 phoenix.js 包,以便我可以连接到我的 Elixir Phoenix 频道。
我已经将 this package 的 phoenix 添加到我的 package.json 并安装了它。
我在 systemjs.config.js 中添加了一行,如下所示:
'phoenix': 'node_modules/phoenix/web/static/js/phoenix.js'
我正在尝试像这样将其导入我的 Angular2 服务(我使用的是 ES6 并已通读 this issue):
import { Socket } from 'phoenix';
我收到错误
app/app.phoenix_channels.service.ts(2,24): error TS2307: Cannot find module 'phoenix'.
我实际上并不是 100% 确定 SystemJS 配置文件是如何包含的以及 运行。它包含在应用程序之前的 HTML 中,但我在编译打字稿时看不到它被包含或解析。
我已经完成了这个
我尝试将 additional_deps 添加为 systemjs.config.js 的键,如下所示:
additional_deps: {
src: 'node_modules/phoenix/priv/static/phoenix.js',
inject: 'libs'
},
但这似乎不起作用。
我怎样才能加载这个依赖项,以便我可以从这个库中导入?
你有运行时的JS文件,但错误是编译错误,因为它正在寻找一个typescript文件。对于库,使用 TypeScript 定义文件,但有些库不支持 TypeScript,因此我们需要安装具有类型定义的外部模块。
有些JS项目你可能找不到定义文件,你需要自己写。或者您可以按照您链接到的答案中的张贴者所做的去做。只需声明随机 any
类型变量(不要导入)
declare var Socket: any;
现在您可以使用 Socket
。但问题是您没有任何强类型或智能感知。
幸运的是,看起来有人为 phoenix 写了一个定义文件
npm install --save-dev @types/phoenix
这应该可以正常工作。就运行时而言,您的 SystemJS 配置看起来应该不错。