
Latar belakang
Memutuskan untuk menjual dengan harga tinggi, saya berakhir di majikan, di mana tidak ada Internet tidak hanya di sirkuit industri, tetapi juga di perdananya (situasinya sebenarnya tidak jarang di banyak, sehingga untuk berbicara, perusahaan). Ada IE di konsol tempat Anda, pembaca saya yang terkasih, tentu saja dapat melihat Habr atau stackoverflow, tetapi tidak lebih. Secara umum, saya ulangi, situasinya tidak luar biasa, Anda dapat hidup dengannya - ini dia, laptop pribadi saya di mana saya menulisnya, ada di atas meja ... apakah wifi diangkat oleh banyak karyawan, apakah seluler sebagai modem, secara umum, jika itu bukan pertahanan / layanan apa pun dari tiga huruf (di sini saya menyarankan Anda untuk pergi dengan cara resmi-mahal, seperti yang akan menjadi beberapa kata di bawah) dan tidak ada layanan pemantauan radio, maka Anda bebas untuk melakukan apa pun dengan laptop pribadi Anda (dalam diperbolehkan :)), yah, setidaknya begitulah yang terlihat dengan kita. Ada kemungkinan menyeret file ke lingkungan dev, tapi saya benar-benar tidak suka keputusan untuk menyimpan node_modules dalam basis kode dan saya menggulung lengan baju saya (saya menggulung lengan baju saya berkali-kali baik tentang pindah dari TFS ke git, dan tentang repo nuget lokal, tetapi ini adalah cerita yang terpisah, juga bukan tanpa drama, tetapi tentang mereka entah bagaimana lain kali). Ada beberapa solusi yang agak mahal untuk masalah ini, adalah mungkin bahwa saya bahkan dapat mendorong beberapa Artifactory, tetapi ketika saya membayangkan berapa banyak ini akan mengambil dan yang paling penting, berapa lama itu akan diputuskan, dikoordinasikan dan diimplementasikan, diputuskan untuk bertindak dengan murah dan marah.
Penafian: karena saya memiliki lingkungan windows, saya menjelaskan secara rinci pekerjaan di konsol Windows, namun, pada dasarnya, perbedaan hanya akan ada di akhir ketika Anda ingin meningkatkan hasil akhir sebagai layanan / daemon.
Bukan Tomi, belahan jiwa, bagaimana?
Dalam aksi yang terlibat:
- Komputer dengan akses internet - sebut sumbernya
- Komputer tanpa akses, di jaringan perusahaan - sebut saja mesin target
Harus ada node.js pada sumber dan pada mesin target (cara termudah adalah jika satu atau versi serupa).
Buat ayah di sumbernya, di suatu tempat dan sebut saja, misalnya, verdaccio:
mkdir verdaccio cd verdaccio
Setelah menginstal Verdaccio secara lokal, ini adalah hal yang sangat berguna, berdasarkan proyek sinopia lama. Baca lebih lanjut di sini: https://verdaccio.org/ .
Singkatnya, ini adalah proksi untuk npm, yang dapat melakukan cache. Untuk begitu banyak pengguna paket ini, peluang utama adalah kemampuan untuk mempublikasikan secara pribadi, tetapi kasus saya sedikit berbeda, saya ingin menyimpan semua yang saya butuhkan untuk bekerja dan sedikit lagi, dan kemudian mentransfer semuanya ke mesin target. Ke depan, saya akan mengatakan bahwa semuanya berjalan tanpa rasa sakit, kecuali untuk transfer node-sass. Itu adalah akar dari tarbalnya yang saya habiskan satu setengah hari (ada bagian asli yang dimuat dari github selama instalasi atau akan gyp, jika tidak berhasil, pikirkan, itu akan dibangun pada setiap mesin pengembangan lokal, yang benar-benar tidak nyaman), tetapi mungkin cerita lain juga.
Semuanya sederhana di sini:
npm i verdaccio
Secara umum, manual ini merekomendasikan untuk menginstal secara global, tetapi pada kenyataannya ini tidak diperlukan sama sekali, terlebih lagi, kami ingin melokalisasi semua aib ini dalam satu folder, sehingga nantinya dapat dengan mudah disalin. Karena begitu ...
Jalankan paket, itu akan membuat penyimpanan dan konfigurasi default:
.\node_modules\.bin\verdaccio.cmd

Lalu, semua orang memberi tahu kami di mana konfigurasi itu, di mana kami tergantung.
Pada prinsipnya, Anda sudah dapat pergi ke alamat yang ditentukan dan melihat sesuatu seperti ini:

Sekarang kita perlu melakukan beberapa hal:
Kosongkan npm-cache ( lebih detail di sini , singkatnya, bunuh konten % AppData% / npm-cache )
Lari
npm set registry http://localhost:4873/
Salin config.yaml ke folder verdaccio kami yang nyaman
Pastikan bagian uplink dari file ini terlihat seperti ini:
uplinks: npmjs: url: https://registry.npmjs.org/ cache: true
Di akhir konfigurasi tambahkan:
listen: - 0.0.0.0:4873
Jika ini tidak dilakukan, maka Anda tidak akan dapat mencapai alamat lokal nanti di mesin target.
Sebenarnya kita sudah siap, sekarang semua paket yang kita ambil melalui instalasi npm akan menetap di ./storage, itulah yang kita butuhkan. Kami mengembalikan proyek target, menetapkan tambahan:
npm i node-windows
Itu saja, setelah itu kami mengambil folder dan mengirimkannya ke mesin target dengan cara apa pun yang memungkinkan untuk Anda (hak admin diperlukan di sana, ya). Anda sudah dapat di sana, Anda dapat langsung membuat file di root folder 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();
Kami meluncurkan:
node installservice.js
Selamat menikmati!
Secara umum, kami berhasil mendapatkan repositori lokal dengan sedikit darah, membangun membangun, pengembang mengembangkan segala sesuatu di dunia ini di tempat mereka. Dan ya, sinkronisasi selanjutnya dilakukan untuk menyalin konten ./storage .
Semua ini ditulis sebagian sebagai memo, dan sebagian untuk menghemat waktu untuk Anda (tugas tidak mungkin diselesaikan terlalu sering), karena jika bunga batu tidak keluar, jangan ragu untuk menulis, ada kemungkinan saya lupa untuk menggambarkan semacam detail, dan jika saya tidak lupa, tiba-tiba, maka saya akan membantu ...