A NuxtJS module to import the StripeJS client script.
# npm
$ npm install --save nuxt-stripe-module
# yarn
$ yarn add nuxt-stripe-module
Add 'nuxt-stripe-module'
to the modules
section of your nuxt.config.js
file.
{
modules: [
['nuxt-stripe-module', {
publishableKey: 'YOUR_STRIPE_PUBLISHABLE_KEY',
}],
]
}
{
modules: [
'nuxt-stripe-module',
],
stripe: {
publishableKey: 'YOUR_STRIPE_PUBLISHABLE_KEY',
},
}
{
modules: [
'nuxt-stripe-module',
],
publicRuntimeConfig: {
stripe: {
publishableKey: 'YOUR_STRIPE_PUBLISHABLE_KEY',
}
}
}
The following options can be configured in the module's configuration entry in your nuxt.config.js
file.
publishableKey
null
Your publishable key.
https://stripe.com/docs/js/initializing#init_stripe_js-publishableKey
apiVersion
null
Override your account's API version.
https://stripe.com/docs/js/initializing#init_stripe_js-options-apiVersion
locale
'en'
A locale used to globally configure localization in Stripe. Setting the locale here will localize error strings for all Stripe.js methods. It will also configure the locale for Elements and Checkout. Default is auto (Stripe detects the locale of the browser).
stripeAccount
''
nuxt.config.js
file. See Getting Started.this.$stripe
is now available in your components. Note that $stripe
can be null
if the script fails to load.{
...
mounted() {
if (this.$stripe) {
const elements = this.$stripe.elements();
const card = elements.create('card', {});
// Add an instance of the card Element into the `card-element` <div>
card.mount('#card-element');
}
},
...
}
For more details, please refer to the official Stripe documentation.
Add the types to your "types" array in tsconfig.json
after the @nuxt/types
(Nuxt 2.9.0+) or @nuxt/vue-app
entry
{
"compilerOptions": {
"types": [
"@nuxt/types",
"nuxt-stripe-module"
]
}
}
Why?
Because of the way Nuxt works the
$stripe
property on the context has to be merged into the NuxtContext
interface via declaration merging. Addingnuxt-stripe-module
to your types will import the types from the package and make typescript aware of the additions to theContext
interface.