【问题标题】:Where should I place a script in React/Redux?我应该在 React/Redux 中的什么位置放置脚本?
【发布时间】:2018-03-19 01:23:23
【问题描述】:

我对 react/redux/node 很陌生,最近开始学习它们。

我正在尝试编写一个使用 OpenPGP.JS 来提供加密和解密功能的应用程序。虽然应用程序中的某些组件可能需要调用脚本,该脚本使用OpenPGP.js 库进行加密,但我不确定将脚本放在哪里。

编辑:以下是当前的树结构。

├── LICENSE.MD
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── src
│   ├── actions
│   │   └── index.js
│   ├── components
│   │   └── app.js
│   ├── index.js
│   └── reducers
│       └── index.js
├── style
│   └── style.css
├── test
│   ├── components
│   │   └── app_test.js
│   └── test_helper.js
└── webpack.config.js

任何指针都会有所帮助。

【问题讨论】:

  • 您可以将其与应用程序捆绑在一起,您可以将其包含为脚本标签。取决于
  • 这个脚本是什么?你想达到什么目的?你能包括你的应用程序的代码吗?
  • @GhassenLouhaichi 因为我还没有编写任何代码,所以我更新了帖子的更多细节。
  • 你为什么不直接导入它,即从你要使用的组件中的'./OpenPGP'导入OpenPGP
  • @linasmnew - 有几个原因:1. 我试过了,但我收到了警告消息This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. 2. 脚本代码可以从多个组件中调用。 3. 脚本可通过 CDN 获得,我想从https://cdnjs.com/libraries/openpgp 获得托管版本。

标签: javascript reactjs react-redux openpgp.js


【解决方案1】:

您可以将客户端 JavaScript 添加到您的 package.json 并使用 npm 或 yarn 安装它们。您的目录结构没有显示 openpgp 的位置,但它应该在 node_modules 中(也不在您的目录结构中)。

由于您使用的是 webpack,您可以使用 npm 或 yarn 安装它(如 documented):

npm install --save openpgp

然后在你的脚本中要求它:

require openpgp from "openpgp"

如果 webpack 抱怨因为 github repo 指向 dist/openpgp.js,你可以尝试在 webpack.config.js 中添加一个 resolve 指向 src 目录而不是 dist。

【讨论】:

  • 我在哪里编写 javascript 代码(OpenPGP 的包装器/实用程序函数)?
  • @RahilParikh 你想去哪里。你可以把它放在 util 或 service 中并导出你想要的功能。您的操作处理程序可以导入该实用程序或服务功能。或者你将它导入你的主应用程序并将其作为依赖项传递给你的动作处理程序的 init 函数,这样更容易模拟测试或替换为另一个模块。
猜你喜欢
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
相关资源
最近更新 更多