用 Require.js 加载 Stripe.js
Load Stripe.js with Require.js
我在使用 Require.js 加载 Stripe.js 时遇到问题。我的设置看起来有点像这样
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'stripe'
}
}
});
这确实有效,也就是说,我可以在 dom 中看到脚本标记,但当我需要它时它是 undefined
。知道这里会发生什么吗?
stripe 导出的全局 Stripe
大写 "S"。 exports
需要完全匹配全局导出 ,意思是大小写。
这个有效:
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'Stripe' // Uppercase
}
}
});
require(['stripe'], function(s) {
// Based on code from https://stripe.com/docs/stripe-js/elements/quickstart
const ss = s('pk_test_g6do5S237ekq10r65BnxO6S0');
const elements = ss.elements();
const card = elements.create('card');
card.mount('#card-element');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.js"></script>
<div id="card-element"></div>
这不是:
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'stripe' // Lowercase
}
}
});
require(['stripe'], function(s) {
console.log(s); // undefined
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.js"></script>
我在使用 Require.js 加载 Stripe.js 时遇到问题。我的设置看起来有点像这样
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'stripe'
}
}
});
这确实有效,也就是说,我可以在 dom 中看到脚本标记,但当我需要它时它是 undefined
。知道这里会发生什么吗?
stripe 导出的全局 Stripe
大写 "S"。 exports
需要完全匹配全局导出 ,意思是大小写。
这个有效:
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'Stripe' // Uppercase
}
}
});
require(['stripe'], function(s) {
// Based on code from https://stripe.com/docs/stripe-js/elements/quickstart
const ss = s('pk_test_g6do5S237ekq10r65BnxO6S0');
const elements = ss.elements();
const card = elements.create('card');
card.mount('#card-element');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.js"></script>
<div id="card-element"></div>
这不是:
requirejs.config({
paths: {
'stripe': 'https://js.stripe.com/v3/?noext'
},
shim: {
'stripe': {
exports: 'stripe' // Lowercase
}
}
});
require(['stripe'], function(s) {
console.log(s); // undefined
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.js"></script>