Yanıtlar:
Eğer bilmiyorsanız, büyük olasılıkla küreseller sizin için doğru cevaptır.
Her iki durumda da, şunu anlamanız gerekir:
Bu özellik çok yakın zamanda piyasaya sürüldü ve henüz belgelenmedi (AFAIK). Temel olarak moduleType, paketin hangi modül teknolojisinin tüketilmesi gerektiğini belirten (yukarıda bakınız).
Şu anda, paketin dosyasında moduleTypeözelliği ayarlamak dışında herhangi bir etkisi yoktur bower.json.
Orijinal çekme isteği için https://github.com/bower/bower/pull/934 adresine bakın .
Yorumları yanıtlamak için birkaç ek nokta:
moduleTypevasıta insanlar teknik olarak onlar, bunun için de dahil olmak üzere istediğiniz değeri ne olursa olsun kullanımına izin verildiğini - mülk angularjsbunu yapmak için eğimli düşünüyorsanıznon-interoperable/proprietary moduleTypes(düşünmek besteci, açısal, vs.) - kolayca anlaşılabilir, ama yine hiçbir şey gerçekten kullanarak yapmalarının önüne moduleTypeistedikleri değeriyui moduleType, bu nedenle, uyumlu bir planın parçası oldukları varsayılarak, yapılacak "istisnalar" vardır.Listelenmemiş bir paket yöneticisi için bir paket yazarsam ve onu bower'da yayınlasaydım ne yapardım?
Bir es6 modülü yazar ve ihtiyacım olan paket formatını çıktılamak için / patch es6-transpiler kullanırım. Sonra ya / ve:
es6a kadarmoduleTypeFeragatname: Angularjs modüllerini yazma konusunda gerçek yaşam deneyimim yok.
angularjsbaşına gelince globals, evet, ama güncellememi okuyabilirim. Umarım yardımcı olur.
Ben de bower initilk kez kullanıyorum .
Seçenekler, bazı JavaScript kodlarını modüle etmenin farklı yollarına atıfta bulunmalıdır:
definegibi, gereksinimler gibi.require.Benim durumumda bir Node.js modül dflow yazdım ama global dflow var ihraç bir dist / dflow.js dosyası oluşturmak için browserify kullanıyorum : böylece globals seçtim .
Bir pencere genel nesnesi olarak dflow'a göz atmak için kullandığım komut
browserify -s dflow -e index.js -o dist/dflow.js
Değiştirdim çünkü tarayıcıda da gereksinimi kullanmayı tercih ediyorum , bu yüzden şimdi kullanıyorum
browserify -r ./index.js:dflow -o dist/dflow.js
ve bu yüzden değişti bower.moduleType için düğüm benim de bower.json dosyası.
Ana motivasyon, eğer modül adımda bir çizgi varsa, örneğin proje akış görünümüm varsa , flowView'de global adı devretmem gerekiyordu .
Bu yeni yaklaşımın iki avantajı daha vardır:
${npm_package_name}browserify için kullandığınız komut dosyası bir kez değişken yararlanabilir ve yazabilirsiniz.Bu başka bir konudur, ancak ikinci faydasının ne kadar yararlı olduğunu düşünmenize gerçekten değer: paketimdenpm.scripts.browserify kullandığım özelliği paylaşmama izin verin.
"browserify": "browserify -r ./index.js:${npm_package_name} -o dist/${npm_package_name}.js"
define(function(require, exports, module) { "use strict"; module.exports = { Collection: require("./collection"), View: require('./view') }; });
Sadece referans olarak, bower'ın modül tipleri ile ilgili olarak tam olarak belirttiği şey budur:
mainJavaScript dosyasında tanımlanan modülün türü . Aşağıdaki dizelerden biri veya bir dizi olabilir:
globals:window.namespaceVeyathis.namespacesözdizimini kullanarak genel ad alanına eklenen JavaScript modülüamd: Sözdizimi kullanan AMD ile uyumlu RequireJS gibi JavaScript modülüdefine()node: Sözdizimi kullanarak düğüm ve CommonJS ile uyumlu JavaScript modülümodule.exportses6: JavaScript ile uyumlu modülü ECMAScript'e 6 modüllerini kullanarak,exportveimportsöz dizimiyui: Sözdizimi kullanan YUI Modülleri ile uyumlu JavaScript modülüYUI.add()
İlgili bağlantı: https://github.com/bower/spec/blob/master/json.md#moduletype