如何添加依赖以做出反应?
How to add a dependency to react?
我正在尝试将以下库添加到 React 项目中:
https://github.com/rndme/download
我做了以下事情:
yarn add https://github.com/rndme/download
并得到了这样的回应:
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ downloadjs@1.4.8
info All dependencies
└─ downloadjs@1.4.8
✨ Done in 2.19s.
然后我更新了 package.json 以包含它:
"dependencies": {
"bootstrap": "4.1.3",
"react": "^16.6.0",
"react-cookie": "3.0.4",
"react-dom": "^16.6.0",
"react-router-dom": "4.3.1",
"react-scripts": "2.1.0",
"reactstrap": "6.5.0",
"downloadjs": "1.4.8"
},
并添加了一些代码来调用它:
async downloadFile(file, url) {
const res = await fetch(url);
const blob = res.blob();
// from downloadjs it will download your file
download(blob, file, "text/plain");
}
但是,它没有编译:
Failed to compile
./src/LicenseList.js
Line 64: 'download' is not defined no-undef
知道为什么吗?
当您 运行 yarn add <dependency>
时,您所需的依赖项实际上已添加到 package.json
中,然后被下载到 node_modules
文件夹中。在这种情况下,您不必手动更新 package.json
。您是否在项目的根文件夹中执行了 yarn add
?这是必不可少的。缺少锁定文件表示您是第一次在此文件夹中执行 yarn install
或 yarn add
。锁定文件通常会添加到 Git 存储库中,因此您似乎 运行 在错误的路径下执行该命令。
关于编译错误:运行宁yarn add
后,您需要在代码中导入所需的function/module。然后,您可以使用该功能。看来您没有正确导入模块。您需要在 JavaScript 文件顶部添加一条语句 import downloadjs from 'downloadjs'
。
因此,这些是您在添加新依赖项时需要遵循的步骤:
- 转到项目根目录并 运行
yarn add <dependency>
,在本例中为 yarn add downloadjs
。您通常可以在 Git 存储库中项目的 package.json 文件中找到依赖项的确切名称。您可以检查一下 ./node_modules/downloadjs
中是否存在包含所需内容的文件夹以及 package.json
和锁定文件中对该包的引用。
根据您的模块捆绑器,您需要导入现在安装的依赖项。使用 require.js,您将添加如下语句:
const downloadjs = require('downloadjs');
通常,您会像这样导入它:
import downloadjs from 'downloadjs';
然后,你将导入的模块保存在变量downloadjs
中。然后您可以像文档中描述的那样使用该模块。在这种情况下,它将是:
downloadjs(data, strFileName, strMimeType);
如果你使用的是 yarn,你只需要写 yarn add mydepencyname
或 yarn add -D mydependencyname
来添加一个 devDependency(也就是说 "only useful during the development phase".
您将在 npm.com 上找到正确的依赖项名称。要更新您的依赖项,只需键入 yarn upgrade-interactive --latest
,然后按空格键 select 您要更新的包。
我访问了这个包的 Repo,它说如下:
Simple global download function via <script>
include
download(data, strFileName, strMimeType);
所以你需要包含一个脚本标签并引用node_modules下的路径到这个包才能使用这个。类似的东西
<script src="/node_modules/downloadjs" />
然后全局下载功能将可用于您的代码...让我知道是否有意义...
Repo中描述了另一种方法
require("downloadjs")(data, strFileName, strMimeType);
我正在尝试将以下库添加到 React 项目中:
https://github.com/rndme/download
我做了以下事情:
yarn add https://github.com/rndme/download
并得到了这样的回应:
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ downloadjs@1.4.8
info All dependencies
└─ downloadjs@1.4.8
✨ Done in 2.19s.
然后我更新了 package.json 以包含它:
"dependencies": {
"bootstrap": "4.1.3",
"react": "^16.6.0",
"react-cookie": "3.0.4",
"react-dom": "^16.6.0",
"react-router-dom": "4.3.1",
"react-scripts": "2.1.0",
"reactstrap": "6.5.0",
"downloadjs": "1.4.8"
},
并添加了一些代码来调用它:
async downloadFile(file, url) {
const res = await fetch(url);
const blob = res.blob();
// from downloadjs it will download your file
download(blob, file, "text/plain");
}
但是,它没有编译:
Failed to compile
./src/LicenseList.js
Line 64: 'download' is not defined no-undef
知道为什么吗?
当您 运行 yarn add <dependency>
时,您所需的依赖项实际上已添加到 package.json
中,然后被下载到 node_modules
文件夹中。在这种情况下,您不必手动更新 package.json
。您是否在项目的根文件夹中执行了 yarn add
?这是必不可少的。缺少锁定文件表示您是第一次在此文件夹中执行 yarn install
或 yarn add
。锁定文件通常会添加到 Git 存储库中,因此您似乎 运行 在错误的路径下执行该命令。
关于编译错误:运行宁yarn add
后,您需要在代码中导入所需的function/module。然后,您可以使用该功能。看来您没有正确导入模块。您需要在 JavaScript 文件顶部添加一条语句 import downloadjs from 'downloadjs'
。
因此,这些是您在添加新依赖项时需要遵循的步骤:
- 转到项目根目录并 运行
yarn add <dependency>
,在本例中为yarn add downloadjs
。您通常可以在 Git 存储库中项目的 package.json 文件中找到依赖项的确切名称。您可以检查一下./node_modules/downloadjs
中是否存在包含所需内容的文件夹以及package.json
和锁定文件中对该包的引用。 根据您的模块捆绑器,您需要导入现在安装的依赖项。使用 require.js,您将添加如下语句:
const downloadjs = require('downloadjs');
通常,您会像这样导入它:
import downloadjs from 'downloadjs';
然后,你将导入的模块保存在变量
downloadjs
中。然后您可以像文档中描述的那样使用该模块。在这种情况下,它将是:downloadjs(data, strFileName, strMimeType);
如果你使用的是 yarn,你只需要写 yarn add mydepencyname
或 yarn add -D mydependencyname
来添加一个 devDependency(也就是说 "only useful during the development phase".
您将在 npm.com 上找到正确的依赖项名称。要更新您的依赖项,只需键入 yarn upgrade-interactive --latest
,然后按空格键 select 您要更新的包。
我访问了这个包的 Repo,它说如下:
Simple global download function via
<script>
include download(data, strFileName, strMimeType);
所以你需要包含一个脚本标签并引用node_modules下的路径到这个包才能使用这个。类似的东西
<script src="/node_modules/downloadjs" />
然后全局下载功能将可用于您的代码...让我知道是否有意义...
Repo中描述了另一种方法
require("downloadjs")(data, strFileName, strMimeType);