我正在尝试使用这个 twitch npm 包 ( https://www.npmjs.com/package/twitch ),并且在通过 creat-react-app / react-scripts 部署时遇到了一些问题。
根据我的理解,与 create-react-app 捆绑的 webpack 配置不喜欢这个 npm 包正在使用的 .mjs 文件。因此,当我尝试构建应用程序时,出现以下错误。
./node_modules/twitch/es/API/Kraken/Channel/ChannelApi.mjs
app_1 | Can't import the named export 'Cacheable' from non EcmaScript module (only default export is available)
Run Code Online (Sandbox Code Playgroud)
如果我手动删除了“es”文件夹,那么构建工作并且一切都按预期运行。但是,这不是真正的解决方案,因为当我推送到生产并在那里部署时,会重新安装节点模块并且构建再次失败。
构建过程并不是我的强项,在谷歌搜索一段时间后我无法找到解决方案。如果有人可以提供帮助或可以指出我正确的方向,那将不胜感激!
如果有帮助,这是我的 package.json
{
"name": "ui",
"version": "1.0.0",
"license": "UNLICENCED",
"private": true,
"dependencies": {
"@babel/core": "^7.9.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/register": "^7.0.0",
"axios": "^0.19.2",
"babel-plugin-dynamic-import-node": "^2.2.0",
"btoa": "^1.2.1",
"clipboard-copy": "^3.0.0",
"connected-react-router": "^6.8.0",
"dateformat": "^3.0.3",
"dotenv": "^8.0.0",
"draft-js": "^0.11.0",
"draft-js-export-html": "^1.4.1",
"express": "^4.16.4",
"file-loader": …
Run Code Online (Sandbox Code Playgroud) 我已经使用 fontawesome 几个月了,没有任何问题。今天,每当我尝试将应用程序推送到生产环境时,我就开始看到此错误。
error An unexpected error occurred: "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/6.1.1/fontawesome-pro-6.1.1.tgz: Request failed \"401 Unauthorized\"".
Run Code Online (Sandbox Code Playgroud)
我尝试过运行yarn install
、删除node_modules
、删除yarn.lock
等,但仍然收到 401 未经授权的错误。我什至卸载并重新安装了所有 fontawesome 软件包。
我使用的是 Yarn,而不是 NPM,所以不确定这是否与此有关。我确实.npmrc
设置了一个文件,如下所示:
// .npmrc
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken="my-token"
Run Code Online (Sandbox Code Playgroud)
我也有一个.yarnrc.yml
文件
error An unexpected error occurred: "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/6.1.1/fontawesome-pro-6.1.1.tgz: Request failed \"401 Unauthorized\"".
Run Code Online (Sandbox Code Playgroud)
这是我的package.json
:
{
"name": "br-client",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"test": "jest",
"storybook": "start-storybook -p 6006 --quiet",
"build-storybook": "build-storybook",
"storybook:clean": "rm -rf …
Run Code Online (Sandbox Code Playgroud) 最近,我决定在一个小项目中尝试 vercel,但在使用 sendgrid 和 vercel 时遇到了问题。我之前已经在heroku上将sendgrid实现到nodejs/express项目中,没有任何问题,但由于某种原因Vercel无法工作。
更糟糕的是,sendgrid 没有给出任何错误,因此很难排除故障。承诺永远悬而未决。测试时,本地一切正常,我已确认环境变量正确并正在加载。
这是我的代码:
const sgMail = require('@sendgrid/mail');
const { magicLinkTemplate } = require('./templates');
const sendEmail = async (msg) => {
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
try {
await sgMail.send(msg)
} catch (error) {
console.error(error);
if (error.response) {
console.error(error.response.body)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了多次迭代,但每次都失败了。还有其他人在使用 vercel 和 sendgrid 时遇到过问题吗?
我刚刚在我的网站上实施了一个全局搜索,我开始遇到 React-Router 的问题。如果 url 更改参数,则不会更新视图。
例如,从/users/454545
to导航/teams/555555
按预期工作。但是,从 导航/teams/111111
到teams/222222
更改了 url,但组件仍然是/teams/111111
。
这是我的搜索输入字段代码。
const SearchResult = ({ id, url, selectResult, text, type }) => (
<Row key={id} onClick={() => selectResult(url)} width='100%' padding='5px 15px 5px 15px' style={{cursor: 'pointer'}}>
<Column alignItems='flex-start' style={{width: '100%'}}>
<Label textAlign='left' color='#ffffff'>{text}</Label>
</Column>
<Column style={{width: '100%'}}>
<Label textAlign='right' color='#ffffff'>{type}</Label>
</Column>
</Row>
)
const SearchInput = (props) => {
const { isSearching, name, onChange, onClear, results } = props;
return (
<Section width='100%' …
Run Code Online (Sandbox Code Playgroud) 我实施了 Discord Oauth2,以便我的用户可以通过 Discord 进行身份验证来登录我的网站。几个月来,一切正常,现在突然停止工作。
根据 Discord 的 oauth2 说明https://discordapp.com/developers/docs/topics/oauth2#shared-resources,我能够成功获取用于交易访问令牌的访问代码。但是,当我尝试接收访问令牌时,我收到了“invalid_client”错误。
首先,我正在击中这个端点:
https://discordapp.com/api/oauth2/authorize?client_id=${process.env.CLIENT_ID}&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Flogin%2Fdiscord%2Fcallback&response_type=code&scope=identify%20email%20gdm.join
Run Code Online (Sandbox Code Playgroud)
成功返回以下内容:
http://localhost:5000/login/discord/callback?code={some_access_code}
Run Code Online (Sandbox Code Playgroud)
然后将访问代码发送回 discord 以获取访问令牌。这是失败的代码:
export function getDiscordAccessToken(accessCode, call) {
const redirect = call === 'login' ? process.env.DISCORD_LOGIN_REDIRECT : process.env.DISCORD_CONNECT_REDIRECT
return new Promise((resolve, reject) => {
axios
.post(
`https://discordapp.com/api/oauth2/token?client_id=${process.env.DISCORD_CLIENTID}&client_secret=${process.env.DISCORD_SECRET}&grant_type=authorization_code&code=${accessCode}&redirect_uri=${redirect}&scope=identify%20email%20gdm.join`
)
.then(res => {
resolve(res.data)
})
.catch(err => {
// log error to db
console.log("Here is your error: ", err.response)
reject(err.response)
})
})
}
Run Code Online (Sandbox Code Playgroud)
这段代码运行了几个月没有任何问题。然后,突然之间它停止了工作。我什至检查了可以在此处找到的 Discord 更改日志https://discordapp.com/developers/docs/change-log,但我没有发现对身份验证更改的引用。
非常感谢您能提供的任何帮助!
javascript ×2
reactjs ×2
discord ×1
email ×1
font-awesome ×1
node.js ×1
npm ×1
oauth-2.0 ×1
react-router ×1
sendgrid ×1
twitch ×1
vercel ×1
webpack ×1
yarnpkg ×1