让npm包与babel(babel-loader)一起使用

时间:2017-07-11 19:25:52

标签: javascript webpack ecmascript-6 babeljs

我对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,将它导入到同一个文件中,没有问题。
  4. 我的假设:

    • 关于特定jwt-decode软件包的一些内容使得它无法与babel一起使用。
    • 为了使其工作,我需要修改jwt-decode包或以不同方式配置webpack和babel-loader。怎么样?

1 个答案:

答案 0 :(得分:0)

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

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

import jwt_decode from "jwt_decode";