如何建立一个流星智能包如何建立一个流星智能包(How to build a Meteor smart

2019-05-13 12:09发布

如何才能建立一个流星智能包装 ,将在出现meteor list

建立大气包是相当良好记录 ,但建筑流星包是没有的。

Answer 1:

流星现在支持create --package命令。

见流星文档 。

示例(代替你的流星开发者帐户的“cunneen”):

meteor create --package cunneen:foo

输出:

cunneen:foo: created in your app

结果:

包/ cunneen:富/ package.js

Package.describe({
  name: 'cunneen:foo',
  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.0.3.1');
  api.addFiles('cunneen:foo.js');
});

Package.onTest(function(api) {
  api.use('tinytest');
  api.use('cunneen:foo');
  api.addFiles('cunneen:foo-tests.js');
});

包/ cunneen:富/ foo.js(空文件)

// Write your package code here!

包/ cunneen:富/ foo- tests.js

// Write your tests here!
// Here is an example.
Tinytest.add('example', function (test) {
  test.equal(true, true);
});

包/ cunneen:富/ README.md(空文件)

# cunneen:foo package

对于一个好的(非常全面)例如,看看铁路由器 。



Answer 2:

见cobberboy的下面回答

下面是过时的信息:

看到新的流星包装系统信息: https://meteorhacks.com/meteor-weekly-meteor-09-rc-meteor-new-logo-underscore-in-templates.html

**旧的信息**

有一个关于更新的信息写你自己的包和有关重新包装现有的第三方库 。 该API不会是稳定的,直到1.0了,所以准备作出许多变化。

我已经包括锅炉板来帮助瓦特/使其既节点和流星可用库一次。 这花了我不少时间去弄清楚,开放的建议。

包:/lib/my.js

if (typeof Meteor === 'undefined) {
    // Not Running In Meteor (nodejs code)
    // example NPM/Node Dependencies that we'll use
    var async = require('async');
    var debug = require('debug')('my:package');
    var mongodb = require('mongodb');

    var http = require('http');  
} else {
    // Running as Meteor Package
    var async = Npm.require('async');
    var debug = Npm.require('debug')('my:package');
    var mongodb = Npm.require('mongodb');

    // node core module 'http'
    // use Npm.require to require node core modules
    // but doesnt need Npm.depends in the package.js file
    var http = Npm.require('http');
}

var constructor = function(property1) {
    this.property1 = property1; // or whatever in your constructor.
};

if (typeof Meteor === 'undefined') {
   // Export it node style
   My = exports = module.exports = constructor; // Limit scope to this nodejs file
} else {
   // Export it meteor style
   My = constructor; // Make it a global
}

// Proceed defining methods / properties as usual.
My.prototype.doStuff = function() { console.log('hello world'); }

包:/package.js

Package.describe({
  summary: "My Meteor Package"
});

/**
 * Ex: Some NPM Dependencies
 */
Npm.depends({
  'async': '0.2.9',
  'debug': '0.7.2',
  'mongodb': '1.3.18'
});

/**
 * On use we'll add files and export our tool
 */
Package.on_use(function (api) {
  /**
   * Add all the files, in the order of their dependence (eg, if A.js depends on B.js, B.js must be before A.js)
   */
  api.add_files([
    'lib/my.js' // <-- include all the necessary files in the package
    ],
    'server'); // Can be 'server', 'client' , ['client','server']

  /**
   * Only expose the My constructor, only export if meteor > 0.6.5
   */
  api.export && api.export(['My'], 'server'); // 1st arg can be array of exported constructors/objects, 2nd can be 'server', 'client', ['client', 'server']
});

流星应用程式:在适当的客户机/服务器环境中的一些文件(如在package.js定义)

var my = new My('a property');
my.doStuff(); // console logs 'hello world' on the server

流星应用:smart.json,你的文件添加到列表包

{
    packages:{
        "node-my": {
            "git": "git@github.com:myAccount/node-my.git"
        }
    }
}

最后运行mrt install在命令行上得到它的安装包.. 哎呀!



Answer 3:

注:包装的发展,目前无证,和API将改变。 你已经被警告!

这就是说,它实际上很容易上手:

首先,git的克隆流星回购的副本。 让自己在/包一个新的目录。 将一个package.js文件中的目录(看其他包的例子)。 现在你已经有了一个包!

接下来,从结账(而不是一个安装程序安装)运行流星脚本。 当从结账运行,该脚本将使用本地包目录中的结账。 当你在你的包更改代码它甚至会热重装。

必须通过其它软件包的例子来看看,并获得一个想法是什么此API。

编辑:极大地促进了第三方软件包方面已经取得。 退房http://oortcloud.github.com/meteorite/和https://atmosphere.meteor.com/



Answer 4:

有关于这个话题的好截屏EventedMind 。



Answer 5:

这个日期是6月12日2013年。这是当时的正确答案,仍然是一个替代的解决方案:

就像n1mmy说。 这是无证的,你应该使用陨石。

如果你坚持创建与流星包,我发现了一个很好的非官方操作方法,但你真的不应该这样做。 流星将现身一种方法在即将发布的版本创建包。

BULDING流星包: https://coderwall.com/p/ork35q

我会做它的方式是陨石

很明显,你有节点,我假设你有节点包管理器(NPM),所以做出流星包迄今为止的最好办法,就是让陨石智能包装。

npm install meteorite

陨石智能包包含用于创建软件包必不可少的两个关键文件 - package.js - smart.json

陨石文件存储在系统下登录的用户帐户:〜/ .meteorite /
但符号链接到您的当前,你创建了一个流星应用:项目/ .meteor /陨石/

样品package.js:

Package.describe({
   summary: "User analytics suite for meteor"
});

Package.on_use(function (api) {
   api.add_files('user_analytics.js', 'client');
});

样品smart.json

{
   "name": "User analytics",
   "description": "User Analytics",
   "homepage": "http://yourHomepage.com",
   "author": "Eric Leroy",
   "version": "0.1",
   "git": "https://github.com/yipyo",
   "packages" : {}
}

如果你需要的信息了,你应该安装在列表中MRT包:

mrt list

然后分析你的应用程序/ .meteor /陨石/目录下的文件。

希望这会有所帮助,并继续开发未来的最好的语言。

下面是一些有用的链接:

  • http://www.eventedmind.com/ -优异的教程解释流星的核心概念
  • 出版大气包
  • 非官方流星常见问题解答
  • 制作与流星聊天室应用


文章来源: How to build a Meteor smart package