在浏览器中使用 webpack 和 babel-loader 编译我的应用程序后,在主函数开始之前立即出现以下错误:
Uncaught TypeError: Cannot destructure property `curry` of 'undefined' or 'null'.
at Object../node_modules/@qzdio/f/lib/combinators/sync.js (index-c1596672f4.js:formatted:268)
at n (runtime-74c3f0da77.js:formatted:10)
at Object../node_modules/@qzdio/f/lib/combinators/index.js (index-c1596672f4.js:formatted:251)
at n (runtime-74c3f0da77.js:formatted:10)
at Object../node_modules/@qzdio/f/lib/index.js (index-c1596672f4.js:formatted:723)
at n (runtime-74c3f0da77.js:formatted:10)
at Object../dist/graph/visualizer/src/index.js (index-c1596672f4.js:formatted:9)
at n (runtime-74c3f0da77.js:formatted:10)
at window.webpackJsonp (runtime-74c3f0da77.js:formatted:26)
at index-c1596672f4.js:formatted:1
错误代码是以下内容的 ES5 转译:
import R from 'ramda';
const { curry } = R;
// I :: a -> a
const I = (x) => x;
...
其中所述代码来自依赖于 ramda 的私有(private)函数库。和 bluebird 。该库在 Node.js 8.9.1 下使用和运行。
webpack config使用的是直接来自 philipwalton 的 webpack-esnext-boilerplate (很好的开始:D)
版本:
- babel-cli:^6.26.0,
- babel-loader:^7.1.2,
- webpack:^3.8.1,
- 浏览器:Google Chrome 版本 62.0.3202.89(官方版本)(64 位),
- Node.js:8.9.1,
- npm:5.5.1
错误的根源是什么?如何解决?
干杯✨
最佳答案
您必须使用import { curry } from 'ramda'
。您可以看到here rambda 如何导出它的模块。它不会导出 ramda 模块本身,而是导出各个函数。
如果您想访问其他方法,您可以使用以下方法:
从 'ramda' 导入 { curry, addIndex, clone }
关于javascript - Webpack:无法解构 `curry` 或 'undefined' 的属性 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47333634/