Uncaught Error: Cannot find module 'openpgp'

Uncaught Error: Cannot find module 'openpgp'

我正在学习 javascript,我尝试在我的 js 文件中使用 npm 导入一些模块。要使用 require() 导入某些模块,它工作正常,但我不知道为什么,对于 openpgp.js 我得到了

Uncaught Error: Cannot find module 'openpgp'.

这是我的 package.json :

{
  "name": "User",
  "version": "1.0.0",
  "main": "index.js",
  "dependencies": {
    "openpgp": "^2.5.1",
    "truffle-artifactor": "^2.1.2"
 },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

这里是我的应用程序的设置:app config

  1. I 运行 npm install openpgp 在我的 js 文件中。

  2. 在我的 js 中,我通过键入 var openpgp = require('openpgp');

  3. 来导入模块
  4. 然后我刷新浏览器,看到我的错误:browser error

有关信息,当我使用节点控制台时,模块工作正常!

我真的是 javascript 的新手,所以我可能做错了什么。如果有人有想法会很有帮助!

为了像在 Node 中一样在浏览器脚本中需要 Node 模块,您需要一个外部库。例如,您可以使用 browserify lib.

Browserify 让您可以将脚本与所需的依赖项捆绑到一个文件中,该文件可以包含在您的网页中。


Browserfiy网站和文档应该足够清楚了。我在这里报告主要步骤:

  1. 在您的系统上安装 browserify:

    npm install -g browserify
    
  2. 使用以下命令将脚本与 require("openpgp") 捆绑在一起:

    browserify yourScriptName.js -o bundleFile.js
    

    (其中 -o 参数用于选择输出文件,如果省略,browserify 将在 stdout 上打印输出)

  3. 现在您可以使用以下标签将之前的输出包含在您的网页中:

    <script src="bundleFile.js"></script>