如何设置 jsdoc 以在互联网较差的机器上使用
How to setup jsdoc for use on machine with poor internet
我有一些javascript是用sublime jsdoc插件评论的。我想根据这些评论生成一些文档。我在防火墙后面的机器上开发这个 javascript 并且互联网非常差,所以使用命令 "npm install jsdoc" 失败。这台机器肯定安装了 node/npm。
我有一台笔记本电脑双启动 linux/windows 10,我可以用它连接到一个不错的互联网连接。
搜索时我遇到了 "opichals" 解决方法:
fetch the package and its dependencies into a local cache folder:
npm_config_cache=./npm_cache npm install express
run the 304 HTTP server
node -e "var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { res.writeHead(304, {'Content-Type': 'text/plain'}); res.end(); }).listen(9615);" &
now this will actually install even when the npmjs.org is not resolvable
npm_config_registry=http://localhost:9615/ npm_config_cache=./npm_cache npm install express
shut the 304 server down
fg
CTRL+C
来源:
https://github.com/npm/npm/issues/1738#issuecomment-10414774
显然 (?) 您不能将所有这些命令都键入命令行。我已经尝试了这些步骤,生成了一个包含所有 jsdoc 依赖项(和 jsdoc)的缓存文件夹。
我将该缓存移到了我的另一台计算机上,扩展了 http 服务器(我也不明白,我假设我 运行 这个在缓存文件夹中?),设置 npm config "cache"和 "registry" 参数到适当的位置。但是当我尝试 npm install jsdoc 时,它找不到任何包。
所以我想回答 如何在没有互联网的机器上设置 jsdoc?
我还想知道我认为您可以从本地缓存安装包 + 依赖项是否正确。或者您可以将 node_modules 文件夹从一台计算机复制并粘贴到另一台计算机吗?
答案:执行"npm install jsdoc"。无论 jsdoc 安装到哪里(通常在执行命令的文件夹中 - 我弄乱了一些设置所以我的设置不同)。该文件夹将被称为 node_modules.
我把node_modules带到了网络不好的电脑上。我没有更改名称(这很重要!),在其中打开了一个命令提示符,我现在只需键入 .bin/jsdoc --version 即可打印出版本。
因为我 运行 从 node_modules 文件夹执行 jsdoc,我必须编辑 jsdoc.js 以便它生成的用于查找另一个模块的相对路径是正确的:
- 查找jsdoc.js (node_modules/jsdoc/jsdoc.js) - 用记事本++等打开
- 将第 25 行 "require('requizzle')" 更改为 "require('../requizzle')"。
运行 jsdoc(有大量警告但仍然)在 node_modules.
中生成一个输出文件夹
我没想到您可以复制并粘贴 node_modules 文件夹。我怀疑我必须做的编辑意味着我不应该这样做?
我有一些javascript是用sublime jsdoc插件评论的。我想根据这些评论生成一些文档。我在防火墙后面的机器上开发这个 javascript 并且互联网非常差,所以使用命令 "npm install jsdoc" 失败。这台机器肯定安装了 node/npm。
我有一台笔记本电脑双启动 linux/windows 10,我可以用它连接到一个不错的互联网连接。
搜索时我遇到了 "opichals" 解决方法:
fetch the package and its dependencies into a local cache folder:
npm_config_cache=./npm_cache npm install express
run the 304 HTTP server
node -e "var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { res.writeHead(304, {'Content-Type': 'text/plain'}); res.end(); }).listen(9615);" &
now this will actually install even when the npmjs.org is not resolvable
npm_config_registry=http://localhost:9615/ npm_config_cache=./npm_cache npm install express
shut the 304 server down
fg CTRL+C
来源: https://github.com/npm/npm/issues/1738#issuecomment-10414774
显然 (?) 您不能将所有这些命令都键入命令行。我已经尝试了这些步骤,生成了一个包含所有 jsdoc 依赖项(和 jsdoc)的缓存文件夹。
我将该缓存移到了我的另一台计算机上,扩展了 http 服务器(我也不明白,我假设我 运行 这个在缓存文件夹中?),设置 npm config "cache"和 "registry" 参数到适当的位置。但是当我尝试 npm install jsdoc 时,它找不到任何包。
所以我想回答 如何在没有互联网的机器上设置 jsdoc?
我还想知道我认为您可以从本地缓存安装包 + 依赖项是否正确。或者您可以将 node_modules 文件夹从一台计算机复制并粘贴到另一台计算机吗?
答案:执行"npm install jsdoc"。无论 jsdoc 安装到哪里(通常在执行命令的文件夹中 - 我弄乱了一些设置所以我的设置不同)。该文件夹将被称为 node_modules.
我把node_modules带到了网络不好的电脑上。我没有更改名称(这很重要!),在其中打开了一个命令提示符,我现在只需键入 .bin/jsdoc --version 即可打印出版本。
因为我 运行 从 node_modules 文件夹执行 jsdoc,我必须编辑 jsdoc.js 以便它生成的用于查找另一个模块的相对路径是正确的:
- 查找jsdoc.js (node_modules/jsdoc/jsdoc.js) - 用记事本++等打开
- 将第 25 行 "require('requizzle')" 更改为 "require('../requizzle')"。
运行 jsdoc(有大量警告但仍然)在 node_modules.
中生成一个输出文件夹我没想到您可以复制并粘贴 node_modules 文件夹。我怀疑我必须做的编辑意味着我不应该这样做?