lufeng:package-demo

A meteor package demo.


Install
meteor add lufeng:package-demo@=0.0.1

Documentation

编写并发布一个Meteor package


$ meteor login
  • 创建package
# 为了和官方包区分,第三方的包名格式为'用户名:包名'
$ meteor create --package lufeng:package-demo
$ cd package-demo
.
├── client.js                    // 需要在客户端使用的代码
├── package-demo-tests.js        // 测试代码
├── package.js                   // 包的配置
├── README.md
├── server.js                    // 服务端使用
└── validator-common.js          // 服务端与客户端公用

client.js

// 需要export的变量不要加var
resolution = screen.width ' x ' screent.height;

server.js

// 用到npm模块的只能在服务端使用
fs = Npm.require('fs')

package.js

Package.describe({
  name: 'lufeng:package-demo',
  version: '0.0.1',
  summary: 'A meteor package demo.',
  git: 'https://github.com/keith3/meteor-package-demo',
  documentation: 'README.md'
});

Package.onUse(function(api) {
  api.versionsFrom('1.1.0.2');

  api.addFiles('server.js', 'server');
  //  api.export('var', ['server', 'client', 'web.browser', 'web.cordova']);
  api.export('fs', 'server');           

  api.addFiles('client.js', 'client');
  api.export('resolution', 'client');

  api.addFiles('validator-common.js', ['server', 'client']);
  api.export('validator', ['server', 'client']);
});

Package.onTest(function(api) {
  ...
});

本地测试

$ meteor create package-test
$ cd package-test
$ mkdir package
$ ln -s package/dir/ validator
$ meteor add lufeng:package-demo
# 现在可以在客户端使用resolution、validator,服务端调用fs、validator

发布

# 首次发布需要加'--create'参数
$ meteor publish --create