在本章中,无涯教程将学习如何创建自己的Meteor包。
让无涯教程在桌面上添加一个新文件夹,在其中创建软件包,无涯教程将使用命令提示符窗口。
C:\Users\username\Desktop\meteorApp> mkdir packages
现在,无涯教程可以在上面创建的文件夹中创建包,从命令提示符处运行以下命令,用户名是Meteor Developer用户名,而 package-name 是程序包的名称。
C:\Users\username\Desktop\meteorApp\packages>meteor create --package username:package-name
为了能够将本地软件包添加到无涯教程的应用程序,无涯教程需要设置环境变量,它将告诉Meteor从本地文件夹加载软件包。右键单击计算机图标,然后选择属性/高级系统设置/环境变量/新建。
链接:https://www.learnfk.comhttps://www.learnfk.com/meteor/meteor-packagejs.html
来源:LearnFk无涯教程网
变量名称应为 PACKAGE_DIRS。变量值应该是无涯教程创建的文件夹的路径。在本例中,为 C:\Users\username\Desktop\meteorApp\packages 。
添加新的环境变量后,不要忘记重新启动命令提示符。
现在,无涯教程可以通过运行以下代码将软件包添加到无涯教程的应用中:
C:\Users\username\Desktop\meteorApp>meteor add username:package-name
在无涯教程创建的包中将找到以下四个文件。
Meteor提供了 tinytest 软件包进行测试。首先,在命令提示符窗口中使用以下命令安装它。
C:\Users\username\Desktop\meteorApp>meteor add tinytest
如果打开 package-name-test.js ,无涯教程将看到默认的测试示例,无涯教程将使用此示例测试应用程序,注意:开发Meteor包时最好编写无涯教程自己的测试。
要测试该软件包,让无涯教程在命令提示符下运行此代码。
C:\Users\username\Desktop>meteor test-packages packages/package-name
无涯教程将得到以下输出。
这是无涯教程可以编写代码的文件,让无涯教程为包创建一些简单的功能,无涯教程的软件包将在控制台中记录一些文本。
packages/package.js
myPackageFunction = function() { console.log('This is simple package...'); }
这是无涯教程可以在其中设置某些程序包配置的文件,无涯教程稍后会再讨论,但是现在无涯教程需要导出 myPackageFunction ,以便可以在应用程序中使用它,无涯教程需要在 Package.onUse 函数中添加此代码。
packages/package-name.js
Package.describe({ name: 'username:package-name', version: '0.0.1', //简要的总结 summary: '', //包含此包源代码的 Git 存储库的 URL。 git: '', //默认情况下,Meteor 将默认使用 README.md 作为文档。 //为避免提交文档,请将此字段设置为 null。 documentation: 'README.md' }); Package.onUse(function(api) { api.versionsFrom('1.2.1'); api.use('ecmascript'); api.addFiles('mypackage.js'); api.export('myPackageFunction'); //我们正在导出我们在上面创建的函数...... }); Package.onTest(function(api) { api.use('ecmascript'); api.use('tinytest'); api.use('username:package-name'); api.addFiles('package-name-tests.js'); });
现在,无涯教程终于可以从无涯教程的 meteorApp.js 文件中调用 myPackageFunction()了。
packages/package.js
if(Meteor.isClient) { myPackageFunction(); }
控制台将记录无涯教程程序包中的文本。
为了更好地理解如何配置 package.js 文件,无涯教程将使用Meteor官方文档中的示例。
/* 关于这个包的信息 */ Package.describe({ //简短的总结。 summary: "What this does", //版本号。 version: "1.0.0", //可选。默认是包目录名称。 name: "username:package-name", //源存储库的可选 github URL。 git: "https://github.com/something/something.git", }); /* 这定义了您的实际包 */ Package.onUse(function (api) { //如果没有为 'api.use' 依赖项指定版本,请使用一个在 Meteor 0.9.0 中定义。 api.versionsFrom('0.9.0'); //使用 Underscore 包,但仅在服务器上。 api.use('underscore', 'server'); //使用 iron:router 包,版本 1.0.0 或更新版本。 api.use('iron:router@1.0.0'); //授予此包的用户对模板包的访问权限。 api.imply('templating') //将对象“电子邮件”导出到使用此包的包或应用程序。 api.export('Email', 'server'); //指定包的源代码。 api.addFiles('email.js', 'server'); }); /* 这定义了包的测试 */ Package.onTest(function (api) { //设置对这个包的依赖 api.use('username:package-name'); //允许您使用“tinytest”框架 api.use('tinytest@1.0.0'); //指定包测试的源代码 api.addFiles('email_tests.js', 'server'); }); /* 这使您可以在包中使用 npm 包*/ Npm.depends({ simplesmtp: "0.3.10", "stream-buffers": "0.2.5" });
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)