Saya ingin menerbitkan paket npm yang berisi file sumber dan distribusi saya. Repositori Github saya berisi src
folder yang berisi file sumber JavaScript. Proses membangun menghasilkan dist
folder yang berisi file distribusi. Tentu saja, dist
folder tersebut tidak diperiksa di repositori Github.
Bagaimana cara saya mempublikasikan paket npm sedemikian rupa sehingga ketika seseorang melakukannya npm install
, mereka mendapatkan src
serta dist
folder? Saat ini ketika saya menjalankan npm publish
dari repositori git saya, itu hanya menghasilkan src
folder yang diterbitkan.
Package.json saya terlihat seperti ini:
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
.gitignore
atau.npmignore
(sepertinya tidak seperti saat saya membaca dokumen) - @Naresh beri tahu kami cara mana yang berfungsi dengan baik.Ketika Anda
npm publish
, jika Anda tidak memiliki.npmignore
file, npm akan menggunakan.gitignore
file Anda (dalam kasus Anda Anda mengecualikandist
folder tersebut).Untuk mengatasi masalah Anda, buat
.npmignore
file berdasarkan.gitignore
file Anda , tanpa mengabaikan folder dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
sumber
Contoh minimal bagaimana menggunakan file data dari sebuah script
Kasus penggunaan umum lainnya adalah memiliki file data yang perlu digunakan skrip Anda.
Ini dapat dilakukan dengan mudah dengan menggunakan teknik yang disebutkan di: Dalam node.JS bagaimana saya bisa mendapatkan jalur modul yang telah saya muat melalui require yang * bukan * milik saya (yaitu di beberapa node_module)
Contoh lengkapnya dapat ditemukan di:
Dengan pengaturan ini, file
mydata.txt
dimasukkan ke dalamnode_modules/cirosantilli-data-files/mydata.txt
setelah instalasi karena kami menambahkannya kefiles:
entri kamipackage.json
.Fungsi kami
myfunc
kemudian dapat menemukan file itu dan menggunakan isinya dengan menggunakanrequire.resolve
. Ini juga hanya berfungsi pada eksekusi./cirosantilli-data-files
tentu saja.package.json
mydata.txt
index.js
cirosantilli-data-files
The
is-installed-globally
paket kemudian berguna jika Anda ingin menghasilkan path relatif ke file didistribusikan tergantung jika mereka diinstal secara lokal atau global: Bagaimana untuk mengetahui apakah paket NPM dipasang secara global atau lokalsumber