首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NPM节点依赖问题-未定义BigNumber

NPM节点依赖问题-未定义BigNumber
EN

Stack Overflow用户
提问于 2020-10-07 01:22:56
回答 1查看 535关注 0票数 0

我正在遵循Set协议入门tutorial。我熟悉vanilla Javascript,但不熟悉Node、NPM、Webpack等。我只获取了这些方面的最低限度的信息,并一直试图在浏览器中运行教程中描述的代码。您可以在这个github repo中找到最新的代码。

index.html的代码如下:

代码语言:javascript
复制
<html>
  <script src="main.js"></script>
  <body>
    <div>
      Hello World!
    </div>
  </body>
</html>

package.json看起来像这样:

代码语言:javascript
复制
{
  "dependencies": {
    "@0xproject/typescript-typings": "^3.0.2",
    "bignumber.js": "^5.0.0",
    "setprotocol.js": "^1.2.9-rc1",
    "web3": "^1.0.0-beta.36"
  },
  "name": "setprotocol",
  "version": "1.0.0",
  "description": "set protocol tutorial",
  "author": "swapna",
  "license": "MIT",
  "private": true,
  "devDependencies": {
    "webpack": "^4.44.2",
    "webpack-cli": "^3.3.12"
  }
}

webpack.config.js看起来像这样:

代码语言:javascript
复制
const path = require('path');
module.exports = {
    entry: './src/index.js',
    output: {
      filename: 'main.js',
      path: path.resolve(__dirname, 'dist'),
    },
    node: {
        fs: 'empty',
      },
      optimization: {
        minimize: false
    },  
  };

我在项目根目录的node_modules下看到了bignumber.js:

我正在通过运行npx webpack --config webpack.config.js来构建main.js

当我在浏览器中加载index.html (运行dist文件夹中的npm install http-server -g )时,在浏览器的JS控制台中看到以下错误:

代码语言:javascript
复制
main.js:203795 Uncaught (in promise) ReferenceError: BigNumber is not defined
    at createStableSet (main.js:203795)
    at Module.<anonymous> (main.js:203818)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87
createStableSet @ main.js:203795
(anonymous) @ main.js:203818
__webpack_require__ @ main.js:20
(anonymous) @ main.js:84
(anonymous) @ main.js:87

发生错误的代码:

我做错了什么?请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 01:27:32

在您使用BigNumber的模块中,您需要导入它。例如,如果你有

代码语言:javascript
复制
// mymodule.js

(async () => {
  const { units, naturalUnit } = await setProtocol.calculateSetUnitsAsnyc(
  componentAddresses,
  [new BigNumber(1), new BigNumber(1)],
  // ...

将其更改为

代码语言:javascript
复制
// mymodule.js

import BigNumber from 'bignumber';

(async () => {
  const { units, naturalUnit } = await setProtocol.calculateSetUnitsAsnyc(
  componentAddresses,
  [new BigNumber(1), new BigNumber(1)],
  // ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64230871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档