Chosen: Dipilih bukan di npm?

Dibuat pada 31 Jul 2013  ·  25Komentar  ·  Sumber: harvesthq/chosen

Ada file package.json, tetapi npm tidak mengembalikan paket 'terpilih' yang sesuai.

Komentar yang paling membantu

Apa kesulitannya adalah menambahkan definisi paket di garpu yang dipilih bower? Apakah itu kemalasan atau ketidakmampuan? Paling tidak, Anda dapat memuaskan pengguna node sampai tingkat tertentu alih-alih menyiramnya sepenuhnya.

Komentar yang bijaksana.. Ingatlah bahwa ini open source, dan semua orang berkontribusi di waktu luang mereka. Selain itu, setiap fitur tambahan harus dipertahankan, yang memakan waktu. Tapi tentu saja, karena ada repo bower-chosen , paket npm seharusnya tidak jauh.

@pfiller mungkin kita harus mengganti nama bower-chosen menjadi chosen-packaged (atau sesuatu yang tidak terkait dengan manajer tertentu) dan menyertakan package.json dalam repo.

Semua 25 komentar

Saat ini, file package.json terutama dimaksudkan untuk menginstal persyaratan dev Terpilih untuk pengembang.

Karena ini adalah perpustakaan yang hanya berfungsi di browser, bukan di sisi server, apakah masuk akal untuk memilikinya di npm ? (ini adalah pertanyaan nyata, saya sama sekali bukan pengembang node.js tetapi seorang pria PHP, jadi saya tidak tahu konvensi npm)

Alasan utamanya adalah menggunakan Browserify sehingga di JS kita dapat melakukan var Chosen = require('Chosen'); daripada menjatuhkan tag skrip sedikit di mana-mana. JS sisi server sudah menggunakan format require , browserify hanya mem-parsing kebutuhan (untuk mensimulasikan definisi modul Nice yang didapat node.js, tetapi untuk front-end) dan mengubahnya menjadi build.js final yang besar (dengan semua dependensi yang dibundel) untuk disajikan ke index.html.

+1 pada masalah ini — Saya menggunakan browserify dan menggunakan yang dipilih di aplikasi saya tetapi saat ini saya harus meletakkannya di direktori vendor yang sangat mengganggu

+1 pada ini juga. Dengan Browserify, sangat masuk akal untuk menggunakan NPM.

+1 dari saya juga :) Juga menggunakan browserify

+1

+1

+1

+1

Jika Anda membutuhkan plugin ini hanya dapat melakukan $ dan jQuery ke dalam lingkup global dan kemudian chosen = require(../path/chosen.min.js)

contoh:

 var $ = require('jquery');
 window.$ = $;
 window.jQuery = $;
 var chosen = require(./chosen.jquery.min.js)

dan Anda dapat menggunakan kode Anda $('select').chosen();

Sumber: http://www.codefornow.com/2014/06/08/browserify-jquery-and-jquery-plugins/

+1

+1

+1 untuk dukungan browserify tolong

Perbaikan di sini cukup mudah, saya pikir.

  1. Tambahkan pembungkus UMD
  2. Tambahkan file yang dibangun ke repo
  3. Publikasikan file yang dibuat ke npm

Jika tim yang dipilih tertarik dengan PR semacam itu, beri tahu saya dan saya akan menyusun sesuatu. File yang dibuat juga dapat diletakkan di Bower, dan seharusnya tidak ada masalah dengan pengembang yang menggunakan Terpilih.

@jmeas

Tambahkan file yang dibangun ke repo

Ini tidak akan terjadi. Kami biasa melakukan ini, dan itu adalah mimpi buruk bagi tim. JS + CSS yang dikompilasi tidak akan ditambahkan ke repo -- ini telah dibahas berkali-kali di pelacak masalah.

Versi pra-kompilasi disediakan melalui halaman rilis . Jika manajer paket pilihan Anda mendukung penetapan paket melalui ZIP, Anda harus menggunakannya. Lihat instruksi bower untuk contoh.

Jika manajer paket pilihan Anda _not_ mendukung ZIP atau menggunakan API rilis GitHub , Anda harus membuka masalah dengan mereka untuk menambahkan dukungan untuk ini.

Pengguna Browserify, Anda memiliki dua pilihan yang saya tahu. Yang pertama dijelaskan di atas, tetapi saya akan meringkasnya sekali lagi:

Solusi satu: gunakan Bower dan window

Ikuti petunjuk di README. Sayangnya, Anda tidak dapat menggunakan npm , sejauh yang saya tahu, jadi atur bower di proyek Anda dan instal Zip. Tambahkan modul ke kode Anda dengan hal-hal berikut:

var $ = require('jquery');

// Chosen requires this :(
window.jQuery = $;

require('path/to/bower_components/chosen_v1.3.0/chosen.jquery');

Dan itu berhasil! jQuery akan, seperti yang Anda harapkan, dimodifikasi secara permanen, jadi Anda tidak perlu memilih tempat lain di aplikasi.

Saya sarankan Anda memastikan bahwa linter Anda membuat kesalahan jika Anda mencoba mengakses browser global untuk memastikan bahwa Anda tidak mulai mereferensikan window.jQuery tempat lain dalam kode Anda.

Tidak tertarik dengan haluan dan jendela? Saya merasa ya. Pilihan kedua adalah...

Solusi dua: bungkus sendiri

Aplikasi saya sering memiliki direktori vendor untuk beberapa pustaka yang tidak dikemas untuk menangani pemuat modul. Jika Anda menambahkan pembungkus UMD ini di sekitar yang dipilih, maka Anda dapat memintanya seperti biasa. Pembungkus ini juga akan berfungsi untuk pengguna AMD.

Mengapa tidak menggunakan browserify-shim saja?

Ini jelas merupakan pilihan. Pengujian aplikasi saya berjalan di Node+JSDom, jadi itu harus bekerja tanpa shimming atau membuat alias library.

Pada akhir minggu saya berharap untuk memiliki build of Chosen pada npm dan bower yang dibungkus dengan UMD, sehingga orang-orang dapat menginstal dari sana di masa depan jika ada masalah. Saya akan terus memperbaruinya jika Anda mengingatkan saya, jadi jika Anda adalah pembaca masa depan dan garpu saya kedaluwarsa, buka saja edisi dan saya dapat memotong rilis.

:+1: untuk komponen bower asli. Ingin dapat mengimpor file scss secara langsung.

+1 untuk menambahkan paket Terpilih ke npm.

+9001 untuk menambahkan paket Terpilih ke npm.

Sepertinya pengembangan pada Terpilih berada pada titik yang lambat (untuk saat ini, setidaknya) dan pengelola tampaknya tidak tertarik untuk memperbarui lingkungan tempat Terpilih bekerja.

Cara terbaik ke depan akan prob. hanya fork proyek ini untuk menambahkan dukungan npm (dan, jika Anda mau, dukungan UMD juga!). Anda dapat memublikasikan rilis baru di npm/Bower (mungkin di bawah modern-chosen ?) lalu buka PR untuk meng-upstream perubahan.

Jika mereka menggabungkannya, bagus – Anda dapat menghentikan modul Anda. Jika tidak, orang akan mulai menggunakan garpu Anda.

(Saya menggunakan "Anda" dalam arti "siapa pun," daripada orang tertentu: P)

Apa kesulitannya adalah menambahkan definisi paket di garpu yang dipilih bower? Apakah itu kemalasan atau ketidakmampuan? Paling tidak, Anda dapat memuaskan pengguna node sampai tingkat tertentu alih-alih menyiramnya sepenuhnya.

Apa kesulitannya adalah menambahkan definisi paket di garpu yang dipilih bower? Apakah itu kemalasan atau ketidakmampuan? Paling tidak, Anda dapat memuaskan pengguna node sampai tingkat tertentu alih-alih menyiramnya sepenuhnya.

Komentar yang bijaksana.. Ingatlah bahwa ini open source, dan semua orang berkontribusi di waktu luang mereka. Selain itu, setiap fitur tambahan harus dipertahankan, yang memakan waktu. Tapi tentu saja, karena ada repo bower-chosen , paket npm seharusnya tidak jauh.

@pfiller mungkin kita harus mengganti nama bower-chosen menjadi chosen-packaged (atau sesuatu yang tidak terkait dengan manajer tertentu) dan menyertakan package.json dalam repo.

Saya telah menyiapkan PR (#2550) yang harus menangani paket npm, harap tinjau adalah contoh paket yang dilampirkan pada PR itu adalah bagaimana paket ini seharusnya terlihat. Terima kasih!

2550 digabungkan dan Terpilih sekarang juga di NPM sebagai chosen-js

@koenpunt Terima kasih! Masalahnya adalah paket berisi file bawaan, jadi tidak dapat mengimpor scss mentah.

Terkait: #2347

Apakah halaman ini membantu?
0 / 5 - 0 peringkat