0

使用浏览器的 webpack 和 babel-loader 编译我的应用程序后,在 main 函数启动之前立即出现以下错误:

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;
...

上述代码来自依赖ramdabluebird的私有函数库。该库在 Node.js 8.9.1 下使用和工作。

使用的webpack 配置直接来自 philipwalton 的 webpack-esnext-boilerplate(非常适合从 :D 开始)

版本:

  • babel-cli: ^6.26.0,
  • 通天塔加载器:^7.1.2,
  • 网络包:^3.8.1,
  • 浏览器:Google Chrome 版本 62.0.3202.89(官方版本)(64 位),
  • Node.js:8.9.1,
  • npm:5.5.1

错误的根源是什么,如何解决?

干杯✨</p>

4

2 回答 2

2

你必须使用import { curry } from 'ramda'. 你可以在这里看到 rambda 是如何导出它的模块的。它不会导出ramda模块本身,而是导出单个函数。

如果要访问其他方法,可以使用以下方法:

import { curry, addIndex, clone } from 'ramda'

于 2017-11-16T19:32:25.000 回答
1

如果您真的想要一个对象中的所有导出值,您可以执行以下操作

import * as R from 'ramda';
const { curry } = R;
于 2017-11-16T19:36:03.683 回答