1,582
社区成员




EdgerOS 集成了由翼辉爱智自研的 JavaScript 运行时 JSRE,那么什么是 JSRE 呢?想必广大开发者, 尤其是 Web 开发者 对 Node.js 和 NPM 都非常熟悉了。类比 Node.js,就能比较容易的理解 JSRE 了,虽然 JSRE 和 Node.js 都是 JavaScript 运行时,可以运行 JavaScript 代码,但 API 的丰富程度以及部分 API 的调用、包的引入是有区别的,比如:
1.模块引入,和部分 API 调用方式不同。比如 JSRE 中目前仅支持 CommonJS 的 require
导入。因为 JSRE 应用文件系统沙盒的特性,__filename
和 __dirname
无法使用,需要以 module.filename
和 module.directory
代替。
2.JSRE 开放了事件循环,开发者可以自由地使用同步或者异步编程范式。值得注意的是,面向智能设备的通讯时,因为无需对异步 IO 进行同步化变换,同步式代码更简单,逻辑也更清晰。
3.API 丰富程度不同。比如 JSRE 不仅内置了如 Node.js 一样的通用编程接口,还内置了 Web 框架、数据库、多媒体、AI 以及其他特有系统服务的 API。
4.运行平台,JSRE 目前仅支持 EdgerOS,而 Node.js 是运行在 Linux,Windows,macOS 等其他特有系统服务的 API。
因为运行时环境的诸多差异,为了避免开发中出现各种未知错误,这里建议不要在爱智应用内直接使用 NPM 包。同时,为了提供最大的兼容性,爱智团队为广大开发者免费提供了 JavaScript(以下简称 JS)软件包仓库:EdgerOS Package Manager (以下简称 EPM)。开发者仅需要使用 npm
命令就可以将自己开发的 JSRE 软件包发布到 EPM 上,也可以拉取 EPM 上的其他开源软件包直接使用。同时 EPM 还将自动将这些公共软件包同步到 npmjs.com/edgeros 组织内。
EPM 原则上仅提供与 EdgerOS 生态相关的 JS 开源软件包。对于通用的 JS 软件包建议大家直接发布到 npmjs.com 供更多的开发者使用。
在 NPM 命名规范的基础上,为了方便广大开发者查找,EPM 对软件包进行简单的分类,并制定了相应的命名规范:
@edgeros/jsre-xxx:软件包依赖于 EdgerOS 操作系统 JSRE 的专有 API,脱离 JSRE 将无法运行。
@edgeros/web-xxx:可以运行在浏览器中的单纯的 JS 软件包,通常与其它 @edgeros 软件包配合使用。
其它软件包名:建议遵循行业常识和最佳实践,例如:
@edgeros/cli:爱智命令行开发工具包
@edgeros/eslint-plugin-jsre:JSRE 的 eslint 代码辅助提示插件
NPM 命名规范:
https://docs.npmjs.com/package-name-guidelines
其它注意事项
1.软件包名中禁止包含侮辱、敏感词汇
2.软件包不得包含恶意代码
3.EPM 目前不支持 unpublish
,如果确实需要请通过 epm@edgeros.com 联系我们。
爱智运营团队保留在不通知发布者的情况下直接下架恶意软件包的权力!
商业软件开发者请谨慎发布您的软件包!
EPM 欢迎社区友好的开源许可证,包括但不限定于:
MIT
木兰宽松许可证
Apache License 2.0 (Apache-2.0)
3-clause BSD license (BSD-3-Clause)
GNU Lesser General Public License (LGPL)
在使用 EPM 之前需要确保两个必要前置条件:
1.确保安装 Node.js / NPM
启动 命令提示符(Windows用户) 或 终端(Lunux 或 Mac 用户) 程序后,这里以 Mac终端作为示例,键入 :
npm -v
# 7.3.0
如果输出版本号,则已安装 NPM,如提示“没有此命令”,则需要安装 Node.js。通常 Node.js 安装包会内置对应版本的 NPM。安装 Node.js 可以参考 Node.js 官方网站 。
Node.js 官方网站:
https://nodejs.org/zh-cn/download/
2.注册翼辉 ID
如果没有注册过 翼辉 ID,请到爱智官网进行注册:
只需要输入几项基本信息即可完成注册。
爱智官网:
https://id.edgeros.com/register
配置 NPM 也非常的简单,只需要在命令行输入以下命令即可:
npm login --scope=@edgeros --registry=https://registry.epm.edgeros.com
# Username:
# Password:
# Email: (this IS public)
# Logged in as xxx to scope @edgeros on https://registry.epm.edgeros.com/.
并按提示输入 Username,Password,Email 即可完成配置。其中 Username,Password,Email 分别为翼辉ID,翼辉ID 密码,电子邮件地址 信息
scope=@edgeros:限定了 NPM 的组织机构范围
registry=https://registry.epm.edgeros.com:指定了 EPM 软件包注册中心的服务地址
登录成功后,npm 将提示 “Logged in as xxx to scope @edgeros on https://registry.epm.edgeros.com/”。同时 NPM 会自动地添加您此次登录所配置的 registry,scope,token 等信息保存在 .npmrc 文件中。
可以通过(Linux)命令 cat ~/.npmrc
查看该文件的内容 (Windows 用户请查看 %userprofile%/.npmrc 文件),请确保文件中已经包含了如以下例子中的配置信息:
@edgeros:registry=https://registry.epm.edgeros.com/
//registry.epm.edgeros.com/:username=翼辉ID
//registry.epm.edgeros.com/:_password=xxxxxxxxx
//registry.epm.edgeros.com/:email=xxx@example.com
//registry.epm.edgeros.com/:always-auth=false
其中 @edgeros:registry=https://registry.epm.edgeros.com/
一行说明对于 @edgeros
这个组织内的软件包将从 EPM 站点获取。以下的几行分别保存了你在 EPM 网站使用的 翼辉 ID 、密码以及公共可见的电子邮件地址。
注意:如果 NPM 版本大于7.7.0,当执行 npm login
时,scope
参数可能会丢失,如果 .npmrc 文件中没有:
@edgeros:registry=https://registry.epm.edgeros.com/
这一行代码,则需要手动将其添加至:.npmrc 文件。
至此 NPM 已经配置完成,接下来就可以使用 NPM 命令安装,发布软件包了。
开发者可以进入 EPM 网站 浏览和搜索已发布的开源软件包,找到合适的软件包后就可以使用 npm
命令从 EPM 安装软件包,例如:
npm install @edgeros/welcome
此外,您也可以使用如 npm info
等命令查看软件包信息
EPM 网站:
当您已经成功使用 翼辉 ID 登录 EPM 并完成软件包的开发之后,仅需要通过 npm publish
的标准流程就可以把软件包发布到 EPM。更多信息请参考 npm publish, 例如:
cd /path/to/your/package
npm publish
以上关于 EPM 的使用全部介绍完毕,那我们就趁热打铁,发布一个 EPM 包试试。
如果按照上述步骤配置好 NPM,则可以根据以下步骤轻松的完成 EPM 包的开发,发布和安装。
hello
,并在 Linux 终端或者 Windows 命令提示符窗口中进入该改文件夹:
cd hello
2.初始化 npm,按提示输入包相关信息,这里需要注意的是包名必须以 @edgeros/
开头
npm init
项目初始化完成后会生成 package.json 文件:
{
"name": "@edgeros/hello",
"version": "1.0.0",
"description": "hello",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"hello"
],
"author": "",
"license": "MIT"
}
3.创建 index.js 文件,并使用你喜欢的编辑器填入代码:
function hello (name) {
console.log(`Hello, ${name} !`);
}
module.exports = hello;
4.创建 README.md 文件:
# hello
Say hello to EdgerOS community.
## usage
```js
const hello = require('@edgeros/hello');
hello('scott');
```
5.发布 EPM 包
npm publish
此时我们就可以去 EPM 网站,查询我们所发布的 EPM 包了。
搜索结果:
点击包名,进入详情页面
现在我们已经可以安装并使用这个软件包了:
npm install @edgeros/hello
至此,我们已经完成了 npm 配置,并且成功在 EPM 上发布了属于自己的第一个 EdgerOS 软件包,是不是还有点小激动?虽然这个软件包还没有什么实际的意义和用途,但是让我们引用谢耳朵的一句话 —— “Because I can!”。当然,优秀的软件包需要不断的迭代和打磨,小伙伴们只要坚持不懈,说不一定还能打造出上万周下载量的知名工具包,成为 EdgerOS 社区的红人呢。
恭喜您这篇帖子入选《社区周刊Vol.18 | 2022年,各大科技公司的科研水平如何?》:https://bbs.csdn.net/topics/604952833 已随社区周刊一起被推荐至CSDN首页,期待您社区的更多优质内容!