try catch and ...release
ページ
ホーム
Chromeアプリ開発Tips
公開アプリ
Ubuntu
Linuxコマンド
#!/bin/bash
ブロックチェーンと暗号通貨
2016年6月24日金曜日
Meteor:自作ライブラリを作成・利用(+公開)する方法
Meteor開発で自作のライブラリを作成して使う方法は2つあります。 - 方法1: Meteorが読み込めるフォルダに自作jsファイルを置く方法(最も簡単な方法) - 方法2: 自作jsライブラリをMeteorのAtmosphereパッケージ化して使う方法 以下はそれらの具体的なやり方です。
# 方法1: ファイルを置くだけの方法 exportしたりrequireする必要もなく、ファイルを設置するだけで普通に使えます。 下記は ```hoge.js``` というサーバ用ライブラリを自作する例です。 プロジェクト構成 ```bash . ├── .meteor/ ├── client/ │ ├── main.css │ ├── main.html │ └── main.js ├── package.json └── server/ ├── hoge.js # 今回追加する自作ライブラリ └── main.js ``` server/hoge.js ```javascript // 自作ライブラリ myfunc = function(){ // without "var" console.log("hoge!"); } // no need to 'export' ``` server/main.js ``` import { Meteor } from 'meteor/meteor'; Meteor.startup(() => { // myfunc(); myfunc(); // console outputs "hoge!" }); ``` これだけ。 Meteorを起動するとコンソールに ```hoge!``` と表示されます。 server.jsでimportする必要すらありません。 とてもシンプルでいいですね。 # 方法2: 自作Meteorパッケージを作る方法 まずは先ほど作った ```server/hoge.js``` を削除しておきます。 ## パッケージの雛形を生成 今回作成するライブラリ: Meteor Developer Account: *akirattii* ライブラリ名: *hoge* ```bash $ meteor create --package akirattii:hoge ``` プロジェクトルートに packages/hoge が作成され、その配下にパッケージの雛形ファイルが自動的に作られる。 ``` . ├── .meteor/ ├── client/ │ ├── main.css │ ├── main.html │ └── main.js ├── package.json ├── server/ │ └── main.js │ # ↓追加された └── packages └── hoge ├── README.md ├── hoge-tests.js ├── hoge.js └── package.js ``` packages/hoge/package.js ```javascript Package.describe({ name: 'akirattii:hoge', version: '0.0.1', // Brief, one-line summary of the package. summary: '', // URL to the Git repository containing the source code for this package. git: '', // By default, Meteor will default to using README.md for documentation. // To avoid submitting documentation, set this field to null. documentation: 'README.md' }); Package.onUse(function(api) { api.versionsFrom('1.3.2.4'); api.use('ecmascript'); api.mainModule('hoge.js'); }); Package.onTest(function(api) { api.use('ecmascript'); api.use('tinytest'); api.use('akirattii:hoge'); api.mainModule('hoge-tests.js'); }); ``` packages/hoge/hoge.js ```javascript // Write your package code here! // Variables exported by this module can be imported by other packages and // applications. See hoge-tests.js for an example of importing. export const name = 'hoge'; ``` packages/hoge/hoge-test.js ```javascript // Import Tinytest from the tinytest Meteor package. import { Tinytest } from "meteor/tinytest"; // Import and rename a variable exported by hoge.js. import { name as packageName } from "meteor/akirattii:hoge"; // ←ちょっと修正 // Write your tests here! // Here is an example. Tinytest.add('hoge - example', function (test) { test.equal(packageName, "hoge"); }); ``` 自動生成だと ```"meteor/hoge";``` となっていてエラーが出たので ```"meteor/akirattii:hoge";``` に修正しました。 ## プロジェクトに自作ライブラリを追加する プロジェクトルートで自作ライブラリをプロジェクトに追加。 ```bash $ meteor add akirattii:hoge ``` 追加されたことを確認してみる。 ```bash $ cat .meteor/versions akirattii:hoge@0.0.1 ... ``` 追加されてますね。 ## Testしてみる ```bash $ cd packages/hoge $ meteor test-packages ./ ``` ```=> App running at: http://localhost:3000/``` が表示された後、http://localhost:3000/ へブラウザでアクセスするとテスト結果が表示される。 ## 自作パッケージをserver.jsから使ってみる その前に ```hoge.js``` を以下のとおりに修正してみる。 packages/hoge/hoge.js ```javascript // Write your package code here! // Variables exported by this module can be imported by other packages and // applications. See hoge-tests.js for an example of importing. export const name = 'hoge'; // 外部から直接アクセスは不可 function hoge() { return "hoge"; } // 外部からアクセス可能 export function foo() { console.log(hoge()); } ``` server/main.js ```javascript import { Meteor } from 'meteor/meteor'; import { foo } from "meteor/akirattii:hoge"; Meteor.startup(() => { foo(); // outputs "hoge!" }); ``` すでに```$ meteor add akirattii:hoge```されている前提で、プロジェクトルートからmeteorを起動するとコンソールに ```hoge!``` と出力されます。 ## 自作パッケージをAtmosphereに公開してみる 自作パッケージを世の中に公開したいなら ``` $ meteor publish --create ``` と打つだけでOK。(Meteor Developer Account があるという前提) 逆に、公開したパッケージをAtmosphereから削除するには、 ``` $ meteor admin set-unmigrated ``` とするだけでOK。ただしこれはAtmosphere上で検索できなくしているだけで、実際には削除されない仕様とのこと。 参照:[Publish Packages](https://atmospherejs.com/i/publishing) 以上となります。 # 結論 Meteorのライブラリの仕組みはとてもシンプルでいいですね。自作ライブラリのパッケージ化も捗りそう。 より詳しい情報は[Meteor公式Guide](https://guide.meteor.com/writing-atmosphere-packages.html)でどうぞ。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿