如何将twilio导入nodejs es模块?
const client = require("twilio")(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN);
在图书馆(你可以看到这里):
module.exports = function(accountSid, authToken, opts) {
return new Twilio(accountSid, authToken, opts);
}
module.exports = Car
相当于 export default Car
因此您可以使用以下方式导入模块:
import twilio from "twilio";
// ^ this will select default export
const client = twilio(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN);
你可以这样做:
import * as Twilio from 'twilio';
const YOUR_AUTH_TOKEN = process.env.TWILIO_AUTH_TOKEN;
const YOUR_ACCOUNT_SID = process.env.TWILIO_ACCOUNT_SID;
const client = Twilio(YOUR_ACCOUNT_SID, YOUR_AUTH_TOKEN);
client.messages
.create({
body: 'This is the ship that made the Kessel Run in fourteen parsecs?',
from: '+15017122661',
to: '+15558675310'
})
.then(message => console.log(message.sid));
确保正确安装
twilio
。
如果有人在这里因为 AWS Lambda Nodejs 18.x 和 AWS SDK v3 需要 ES6 导入而遇到此问题,则列出的其他解决方案对我不起作用(我仍然会收到错误
"Cannot find package 'twilio' imported from /var/task/index.mjs"
)。
相反,我必须在 Lambda 函数中创建一个单独的
twilio-loader.js
文件:
//imports twilio as commonJS
const twilio = require('twilio');
const createTwilioClient = (accountSid, authToken) => {
return twilio(accountSid, authToken);
};
module.exports = { createTwilioClient };
然后在我的
index.mjs
文件中,我添加了以下行
import { createTwilioClient } from './twilio-loader.js';
const { TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN } = process.env;
const twilioClient = createTwilioClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN);