小编Kyl*_*ast的帖子

如何使用 webpack 使 create-react-app 支持 .mjs 文件?

我正在尝试使用这个 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)

reactjs twitch webpack create-react-app

5
推荐指数
1
解决办法
2168
查看次数

Fontawesome 在构建过程中给出 401 未经授权的错误

我已经使用 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)

npm font-awesome yarnpkg react-font-awesome

5
推荐指数
1
解决办法
7995
查看次数

部署到 Vercel 时,Sendgrid 电子邮件不会发送

最近,我决定在一个小项目中尝试 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 时遇到过问题吗?

javascript email node.js sendgrid vercel

5
推荐指数
1
解决办法
964
查看次数

如果 url 参数更改,React Router 不会更新组件

我刚刚在我的网站上实施了一个全局搜索,我开始遇到 React-Router 的问题。如果 url 更改参数,则不会更新视图。

例如,从/users/454545to导航/teams/555555按预期工作。但是,从 导航/teams/111111teams/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)

javascript reactjs react-router

1
推荐指数
2
解决办法
1063
查看次数

Discord Oauth2 收到“无效客户端”错误

我实施了 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,但我没有发现对身份验证更改的引用。

非常感谢您能提供的任何帮助!

oauth-2.0 discord

0
推荐指数
2
解决办法
3335
查看次数