Javascript 网页包:无法对';的属性“curry”进行解构;未定义';或';空';

Javascript 网页包:无法对';的属性“curry”进行解构;未定义';或';空';,javascript,node.js,webpack,babeljs,babel-loader,Javascript,Node.js,Webpack,Babeljs,Babel Loader,在为浏览器使用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 (run

在为浏览器使用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;
...
其中,所述代码来自依赖于和的私有函数库。该库在Node.js 8.9.1下使用和工作

使用的是philipwalton的网页esnext样板(很好的开始:D)

版本:
  • 巴别塔cli:^6.26.0
  • 巴别塔加载器:^7.1.2
  • 网页包:^3.8.1
  • 浏览器:Google Chrome版本62.0.3202.89(官方版本)(64位)
  • Node.js:8.9.1
  • 净现值:5.5.1
错误的来源是什么?如何解决


干杯✨

您必须使用
从'ramda'导入{curry}
。您可以看到rambda是如何导出其模块的。它不导出
ramda
模块本身,而是导出单个函数

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


从'ramda'导入{curry,addIndex,clone}

您必须使用
从'ramda'导入{curry}
。您可以看到rambda是如何导出其模块的。它不导出
ramda
模块本身,而是导出单个函数

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


从“ramda”导入{curry,addIndex,clone}

如果确实希望将所有导出的值都放在一个对象中,可以执行以下操作

import * as R from 'ramda';
const { curry } = R;

如果确实希望将所有导出的值放在一个对象中,可以执行以下操作

import * as R from 'ramda';
const { curry } = R;

这是否
constr=require('ramda')有效?您是否尝试过从“ramda”导入{curry}
它们都是行的有效排列是,但为了在webpack中测试它们,我必须提交到库,然后在npm上推送修补版本。但是,我可以向您保证这两种方法都在节点环境中工作,因为我在库的其他文件中有这些精确的行,并且正如前面所说,库在节点中正确加载。我的猜测是,从网页包的角度来看,这更像是一个配置/传输问题。但是如果你坚持,我会把“拉姆达”改成导入R然后使用
R.curry
解决相同的错误<代码>从“ramda”导入{curry}似乎可以做到这一点@dzm知道为什么吗?这个
constr=require('ramda')有效?您是否尝试过从“ramda”导入{curry}
它们都是行的有效排列是,但为了在webpack中测试它们,我必须提交到库,然后在npm上推送修补版本。但是,我可以向您保证这两种方法都在节点环境中工作,因为我在库的其他文件中有这些精确的行,并且正如前面所说,库在节点中正确加载。我的猜测是,从网页包的角度来看,这更像是一个配置/传输问题。但是如果你坚持,我会把“拉姆达”改成导入R然后使用
R.curry
解决相同的错误<代码>从“ramda”导入{curry}似乎可以做到这一点@知道为什么吗?那真的很有趣。我想知道为什么我总是毫无疑问地使用原始帖子中概述的方法。但你是对的,这就解决了问题!那真的很有趣。我想知道为什么我总是毫无疑问地使用原始帖子中概述的方法。但你是对的,这就解决了问题!