在typescript和webpack项目中使用外部库
为了解决这个问题,我已经被困了几个星期了,我真的是个精疲力竭的人 到目前为止,根据: 我已将此添加到在typescript和webpack项目中使用外部库,typescript,webpack,Typescript,Webpack,为了解决这个问题,我已经被困了几个星期了,我真的是个精疲力竭的人 到目前为止,根据: 我已将此添加到webpack.common.js: new webpack.ProvidePlugin({ Stripe: 'stripe' }) 然后,在我的typescript组件中添加了以下内容: import * as Stripe from '@types/stripe'; 然而,我得到了这个错误: [ts]文件“…/node_modules/@types/stripe/index.d.t
webpack.common.js
:
new webpack.ProvidePlugin({
Stripe: 'stripe'
})
然后,在我的typescript组件中添加了以下内容:
import * as Stripe from '@types/stripe';
然而,我得到了这个错误:
[ts]文件“…/node_modules/@types/stripe/index.d.ts”不是模块
我也试过:
import stripePackage from 'stripe';
但我得到了同样的信息:
[ts] File '.../node_modules/@types/stripe/index.d.ts' is not a module.
扩展
现在,我已经卸载了@types/stripe
,并在index.html
上添加了脚本cdn参考:
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
VSCode
可以为条带
对象提供方法,这对我来说很神奇。
- VSCode如何知道条带的位置?(记住,我只在
中添加了一个index.html
标记。这对我来说很神奇
如何在我的typescript代码中创建webpack或typescript
标记引用之间的链接?我不知道它是如何提供的
根据GitHub发布的版本,
@types/stripe
的类型定义已经过时。该版本称它们适用于stripe 2.x,但当前版本为4.15.1
现在,您必须在没有类型定义的情况下生存,请使用以下工具卸载@types/stripe
:
npm uninstall @types/stripe --save-dev
您必须始终导入模块本身,而不是类型定义。因此:
import * as Strip from 'stripe';
另外,webpack.ProvidePlugin
仅用于依赖于全局可用模块的旧模块,webpack只需将导入添加到尝试使用该全局模块的每个模块。请参阅。如果您只是在自己的代码中使用它,则可以取消ProvidePlugin
注意:npm上的Stripe仅用于服务器端绑定,您不能将它们捆绑到浏览器的应用程序中。如果您只导入“Stripe”编译器现在什么都不告诉我。但是,我应该如何将定义的类型使用到
“Stripe”
?我刚刚意识到,我可以直接使用Stripe
。这是我正在考虑的问题无法将“@types/Stripe”中的import*作为Stripe使用
或“import*作为Stripe”中的Stripe使用
。@types
只是类型定义。这不是一个可以导入的库。这取决于包的编写方式,但如果您的index.html中只有一个脚本标记,并且安装了@types
,那么我就可以在那里导入it’再也不需要在typescript中导入了谢谢@Michael。我已经添加了一些相关的问题,试图用您在帖子中的方法来处理。您能给我一些灯光吗?(我正在使用浏览器中的stripe)我对stripe一无所知。但是你可以在HTML中的
标记中包含stripe脚本,并使用全局stripe
。你可能会对类似的问题感兴趣。
npm uninstall @types/stripe --save-dev
import * as Strip from 'stripe';