【问题标题】:Getting npm packages to work with babel (babel-loader)让 npm 包与 babel 一起工作(babel-loader)
【发布时间】:2017-07-11 19:25:51
【问题描述】:

我对 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 install。
  2. 我试过import jwtDecode from 'jwt-decode' 然后我试过import jwtDecode from 'jwt-decode/build/jwt-decode
  3. 我确保可以引用其他类似安装的 npm 包。在一个新的 docker 实例上,我安装了 lodash,将其导入到同一个文件中,没有问题。

我的假设:

  • 关于特定的 jwt-decode 包的某些问题使其无法与 babel 很好地配合使用。
  • 要使其工作,我需要修改 jwt-decode 包或以不同方式配置 webpack 和 babel-loader。怎么样?

【问题讨论】:

  • 可能路径不对?路径似乎与其他包不同

标签: javascript webpack ecmascript-6 babeljs


【解决方案1】:

Babel 不会为 JWT-decode 转换任何内容,我认为 webpack 也没有任何额外的配置。

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

import jwt_decode from "jwt_decode";

【讨论】:

  • 感谢您对此的意见。恐怕没有帮助。消息仍然非常相似。正如我所说,我尝试了 npm install lodash 和 import 作为一种魅力。最后,我求助于编写自己的方法,但我没有用于 atob() 的 polyfill,因此似乎较旧的浏览器可能存在问题。 ./src/app/redux/modules/login.js 中的错误找不到模块:错误:无法解析“/usr/src/app/src/app/redux/modules”中的“jwt_decode/build/jwt_decode”
  • 对不起,我帮不上忙。也许您可以确保 jwt-decode 在 package.json 的依赖项中,正如预期的那样。然后删除您的node-modules/ 目录。然后重新运行npm install 以重新生成您的依赖项并重建您的node-modules/ 目录
猜你喜欢
  • 2019-02-20
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 2019-06-21
  • 2016-03-12
  • 1970-01-01
相关资源
最近更新 更多