我已将Stripe.js
脚本标记添加到我的index.html
:
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
我从webpack收到此错误消息:
找不到模块:错误:无法解析'stripe'
如您所见,webpack
无法解析'stripe'
模块。我使用以下方法导入它:
import 'stripe';
因此,在我的代码中,我使用Stripe
键工作来访问Stripe
:
@Injectable()
export class SourceEffects {
constructor() {
Stripe.setPublishableKey("pk_test_Casd");
}
}
一切似乎都有效(VSCODE
不会警告我任何事情)。然而,当我试图运行webpack时,我遇到了错误。
有什么想法吗?
修改
简而言之:
@types/stripe
。import 'stripe'
将其导入打字稿代码。can't resolve stripe module
。答案 0 :(得分:0)
我不知道你如何获得客户端Stripe.js的类型信息,但是如果你只是想要启动并运行,你可以执行以下操作:
export class SourceEffects {
constructor() {
let Stripe: any = (window as <any>).Stripe;
Stripe.setPublishableKey("pk_test_Casd");
}
}
基本上,Stripe.js的脚本标记将一个Stripe对象添加到窗口对象,所以只需从那里获取对象,然后关闭该API的类型检查。如果您想为客户端Stripe.js键入信息,您将不得不环顾四周(或自己编写)。但使用any
将关闭Stripe的类型检查。
有关完整示例,请参阅this blog post。
PS。您仍然需要删除import 'stripe'
行。
编辑:为什么您的解决方案不起作用
- 我正在使用@ types / stripe。 这仅适用于typescript编译器来获取节点模块“stripe”的类型定义。这不用于运行您的应用程序,这就是为什么您应该只将它添加到您的devDependencies
- 我使用import'strip'将其导入打字稿代码。
import 'stripe'
是webpack在node_modules中查找模块'stripe'
的指令。您没有该模块 - 您没有使用节点库条带。
- webpack让我无法解析条带模块。
由于您的package.json(并且已安装)中没有列出'stripe'
作为您正在使用的库,因此webpack在尝试加载它时无法找到它。