
背景知识
决定以高价售出后,我来到了雇主那里,不仅在工业电路中,而且在少女中都没有互联网(实际上,在许多企业中这种情况并不罕见)。 控制台中有IE,亲爱的读者,您可以在其中查看Habr或stackoverflow,但仅此而已。 通常,我再说一遍,情况并不特殊,您可以忍受-在这里,我在上面写我的个人笔记本电脑在桌上……是许多员工举起的wifi,还是作为调制解调器的蜂窝电话? /三个字母的任何服务(在这里,我建议您以官方昂贵的方式使用,以下将是几个词),并且没有无线电监视服务,那么您可以自由地使用个人笔记本电脑做任何事情(在允许的范围内:)),至少这就是我们的样子。 有可能将文件拖到开发环境中,但是我真的不喜欢将node_modules保留在代码库中的决定,因此我袖手旁观(我多次袖手旁观,既涉及从TFS到git的转换,也涉及本地nuget回购,但这些都是独立的故事,也并非没有戏剧性,而是下一次关于它们的故事)。 有几个相当昂贵的解决方案,我什至可以推销一些Artifactory,但是当我想到要花多少钱,最重要的是,决定,协调和实施它需要多长时间时,便决定廉价而愤怒地行动。
免责声明:由于我有Windows环境,因此我将详细描述Windows控制台中的工作,但是,实质上,只有当您想将最终结果作为服务/守护程序时,差异才结束。
不是Tomi,知己,怎么了?
涉及的行动:
- 可以上网的计算机-称其来源
- 公司网络上无法访问的计算机-将其称为目标计算机
源计算机和目标计算机上必须有node.js(最简单的方法是使用一个或类似版本)。
在源上的某个地方创建一个爸爸,然后调用它,例如verdaccio:
mkdir verdaccio cd verdaccio
在本地安装Verdaccio后,基于旧的sinopia项目,这是非常有用的事情。 在此处了解更多信息: https : //verdaccio.org/ 。
简而言之,这是npm的代理,可以缓存。 对于这个软件包的如此多的用户,关键的机会是可以私下发布的能力,我的情况有所不同,我想缓存我工作所需的一切以及更多内容,然后将其全部传输到目标计算机。 展望未来,我要说的是,除了转移node-sass之外,其他所有方面都非常轻松。 我花了一天半的时间才是她的tar包的根源(安装过程中从github加载了一个本地部分,或者要进行gyp,如果无法正常工作,请考虑一下,它将在每台本地开发机器上构建,这完全不舒服),但是可能另一个故事。
这里的一切都很简单:
npm i verdaccio
通常,该手册建议全局安装,但实际上这根本没有必要,此外,我们希望将所有这些耻辱都定位在一个文件夹中,以便以后可以方便地进行复制。 因为这样
运行该软件包,它将创建默认的存储和配置:
.\node_modules\.bin\verdaccio.cmd

然后,只有每个人都告诉我们配置在哪里,我们挂在哪个端口上。
原则上,您已经可以转到指定的地址并看到类似以下内容:

现在我们需要做一些事情:
清除npm-cache( 在这里 , 更多详细信息 ,简而言之,杀死%AppData%/ npm-cache的内容 )
跑
npm set registry http://localhost:4873/
将config.yaml复制到我们舒适的verdaccio文件夹中
确保此文件的上行链路部分如下所示:
uplinks: npmjs: url: https://registry.npmjs.org/ cache: true
在配置末尾添加:
listen: - 0.0.0.0:4873
如果不这样做,则以后将无法在目标计算机上访问本地地址。
实际上我们已经准备好了,现在通过npm install打包的所有软件包都将存放在./storage中,这是我们所需要的。 我们还原目标项目,另外设置:
npm i node-windows
就是这样,之后,我们将文件夹以任何可能的方式发送到目标计算机(需要管理员权限,是的)。 您已经可以在此处,可以立即在installservice.js文件夹的根目录中创建一个文件:
var Service = require('node-windows').Service; var svc = new Service({ name: 'VerdaccioSvc', description: 'Verdaccio - npm local repository', script: ' < >\\node_modules\\verdaccio\\bin\\verdaccio', nodeOptions: [] }); svc.on('install', function() {svc.start();}); svc.install();
我们推出:
node installservice.js
好好享受
总的来说,我们设法获得了一个鲜血淋漓的本地存储库,正在构建,正在构建,开发人员正在在他们自己的位置上开发这个世界上的所有东西。 是的,后续同步归结为复制./storage的内容。
所有这些都部分作为备忘录记录下来,部分是为了节省您的时间(任务不太可能经常解决),因为如果一朵石花不出来,可以随便写,我有可能忘记描述某种细节,如果我没有忘记,突然之间,我会帮忙...