使用 Big.js 时 Rollup 出错
Rollup gives error when using Big.js
我目前正在为 Angular 4.x 开发一个库(用 TypeScript 编写)。使用 Rollup. It all worked fine until I added the big.js library 和相应的类型 (@types/big.js
) 创建必要的 JavaScript 包。
我是这样导入的:
import * as Big from 'big.js';
import BigJS = BigJsLibrary.BigJS;
并像这样使用它:
// instantiating
let bigValue = Big(value);
// example of parameter usage
private someFunction(value: BigJS) { /* some code */ }
当 运行 Rollup 时,我现在收到以下错误:Error: Cannot call a namespace ('Big')
。我的第一个想法是将 big.js
添加到 Rollup 的外部列表中 (external: [ 'big.js' ]
)。然而,这并不能解决问题。
我可以看到 BigJS 库没有(默认)导出,所以我尝试使用 commonjs and nodeResolve Rollup 插件,如下所示:
plugins: [
nodeResolve({
jsnext: true,
main: true
}),
commonjs({})
]
我有一种感觉,我正在监督一些显而易见的事情。如果有人能指出我在这里犯的错误,我将不胜感激。
调用导入的 namespace(* as Big
部分)是与 ES 模块不兼容的 TypeScript 习惯用法。尝试这样做:
import Big from 'big.js';
你仍然需要 node-resolve 和 commonjs 插件,因为 Big.js 是一个 CommonJS 模块。
我目前正在为 Angular 4.x 开发一个库(用 TypeScript 编写)。使用 Rollup. It all worked fine until I added the big.js library 和相应的类型 (@types/big.js
) 创建必要的 JavaScript 包。
我是这样导入的:
import * as Big from 'big.js';
import BigJS = BigJsLibrary.BigJS;
并像这样使用它:
// instantiating
let bigValue = Big(value);
// example of parameter usage
private someFunction(value: BigJS) { /* some code */ }
当 运行 Rollup 时,我现在收到以下错误:Error: Cannot call a namespace ('Big')
。我的第一个想法是将 big.js
添加到 Rollup 的外部列表中 (external: [ 'big.js' ]
)。然而,这并不能解决问题。
我可以看到 BigJS 库没有(默认)导出,所以我尝试使用 commonjs and nodeResolve Rollup 插件,如下所示:
plugins: [
nodeResolve({
jsnext: true,
main: true
}),
commonjs({})
]
我有一种感觉,我正在监督一些显而易见的事情。如果有人能指出我在这里犯的错误,我将不胜感激。
调用导入的 namespace(* as Big
部分)是与 ES 模块不兼容的 TypeScript 习惯用法。尝试这样做:
import Big from 'big.js';
你仍然需要 node-resolve 和 commonjs 插件,因为 Big.js 是一个 CommonJS 模块。