让 npm 包与 babel (babel-loader) 一起工作



我对webpack,babel,React和所有这些东西真的很陌生。所以我可能错过了一些非常明显的东西。为了快速启动我的 React 项目,我正在使用 react-redux-bootstrap-webpack-starter。一切都很顺利,但现在我的缺乏理解确实表明了我的最新问题。

问题:

我正在尝试从"jwt-decode"导入 jwtDecode,它抛出以下错误:

./src/app/redux/modules/login.js
Module not found: Error: Can't resolve 'jwt-decode/build/jwt-decode' in 
'/usr/src/app/src/app/redux/modules'
@ ./src/app/redux/modules/login.js 12:17-55
@ ./src/app/redux/modules/reducers.js
@ ./src/app/redux/store/configureStore.dev.js
@ ./src/app/redux/store/configureStore.js
@ ./src/app/Root.js
@ ./src/app/index.js
@ multi react-hot-loader/patch webpack-hot-middleware/client 
./src/app/index.js

我做了什么:

  1. 我已经对前端应用程序进行了 Docker 化,所以我只是将 jwt-decode 包添加到 package.json 并重建了映像。Docker 构建执行 npm 安装。
  2. 我试过import jwtDecode from 'jwt-decode'然后我试过import jwtDecode from 'jwt-decode/build/jwt-decode
  3. 我确保我可以引用其他类似安装的 npm 包。在一个新的 docker 实例上,我安装了 lodash,将其导入到同一个文件中,没有问题。

我的假设:

  • 特定的 jwt 解码包有一些东西让它不能很好地与 babel 配合使用。
  • 为了使它工作,我需要修改 jwt 解码包或以不同的方式配置 webpack 和 babel-loader。如何?

Babel 没有为 JWT 解码转译任何东西,我认为 webpack 也没有任何额外的配置。

看起来您尝试使用jwt解码的地方,例如:"./src/app/redux/modules/login.js",在您的应用程序中找不到目录,因此失败。 确保您使用的任何模块加载器都引用了指向 jwt-decode 目录的正确路径。 尝试像这样加载它(如果您通过 Babel 转译使用 ES2015(:

import jwt_decode from "jwt_decode";

最新更新