rp 是一个类似npm 的包管理工具,我们可以使用package.json 定义依赖
然后执行rp install 即可,类似ringo-admin 的功能
其中packages 类似node 的node_modules,安装后的包在packages 目录中

参考代码

  • 项目结构
├── Dockerfile   // dockerfile
├── README.md
├── app
│ ├── app.js // app module
│ ├── index.js // app module 入口
│ └── package.json // app 包信息
├── boot.js
├── docker-compose.yaml // docker-compose 配置
├── index.js // stick web app 入口
├── package.json // 定义项目以及包依赖
└── user
├── package.json // user module
└── user.js // user module
  • 代码说明

    主要是stick 的使用以及module 的定义,引用

app/app.js
exports.app= {
name:"dalong",
age:33,
type:"app"
} app/index.js:
const {app} =require("./app")
exports.app=app;
app/package.json :
入口
{
"version": "1.0.0",
"main": "app.js",
"license": "MIT"
} index.js : app 入口
类似 express 框架
const {app } = require("./app")
const {user} = require("./user")
const boot = require("./boot")
console.dir(boot.run())
var {Application} = require('stick');
var response = require("ringo/jsgi/response")
var app2 = exports.app = new Application();
app2.configure('route');
app2.get('/', function(request) {
return {
body: ['Hello World dalongdemo'],
headers: {'Content-Type': 'text/html'},
status: 200
}
});
app2.get("/user",function(request){
return response.html("<div>"+JSON.stringify(request.headers)+"<br>"+JSON.stringify(user)+"</div>")
}) if (require.main == module) {
require('ringo/httpserver').main(module.id);
}
Dockerfile: FROM dalongrong/ringojs-docker:1.2.1-local
WORKDIR /app
COPY . /app/
RUN rp install -y
ENTRYPOINT [ "ringo","index.js","-H","0.0.0.0"] docker-compose.yaml:
version: "3"
services:
app:
image: dalongrong/ringojs-app-demo
build: ./
ports:
- "8080:8080"

构建&&运行

  • 本地运行
rp  install  -y
备注: rp 安装
ringo-admin install http://packages.ringojs.org/download/rp/latest
ringo index.js
  • docker 运行
docker-compose build
docker-compose up -d

运行效果

安装的包pakcages

web 运行界面

参考资料

https://github.com/rongfengliang/ringojs-module-demo
https://ringojs.org/documentation/package_management/

 
 
 
 

ringojs 使用rp 包管理web 应用依赖的更多相关文章

  1. ringojs 的包管理

    ringojs 集成了包管理目前有几种方式 ringo-admin rp ringo-admin 安装包 我们使用ringo-admin 安装rp ringo-admin install grob/r ...

  2. Maven入门-依赖管理(Jar包管理)(二)

    1       依赖管理(Jar包管理) 1.添加依赖  

  3. 拜拜了,GOPATH君!新版本Golang的包管理入门教程

    Go 1.11和1.12实现了对包管理的初步支持,Go的新依赖管理系统使依赖版本信息明确且易于管理.Using Go Modules - The Go Blog 新的包管理模式有什么不同? 作为Go语 ...

  4. 永久解决Sublime包管理package control 打开install package报错 There are no packages available for installation

    很多用户在使用sumblime安装插件的时候,打开package control的install package会出现报错:There are no packages available for in ...

  5. 使用Bower作为Web包管理器

    Bower是一个简单易用的Web包管理器,通过它我们可以非常简便的安装各种Web框架和库,同时它也负责管理不同包之间的关系依赖. 安装Bower Bower需要 npm 和 Git 的支持,在安装Bo ...

  6. Bower —— 一个Web的包管理工具

    作者:江剑锋   github地址:https://github.com/bower/bower Bower为何物 Bower是一个Web开发的包管理软件.前端开发中,或多或少,都会以来于现成的fra ...

  7. 项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里

    当一个普通的项目,在不适用maven 等jar包管理工具的时候,通常我都会直接把jar 包复制lib下,并且在build path 中直接添加额外jar包,或者使用user_libraries包所用的 ...

  8. bower一个强大的前端依赖包管理工具

    在介绍之前,你必须的知道bower是基于nodejs开发的,所以你首先必须得有个nodejs环境,至于这么安装nodejs网上一大堆教程,对了使用bower还需要安装git,这里就不多说了. #### ...

  9. 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项

    当通过Nuget包管理器获取还原组件时,出现  提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...

随机推荐

  1. WdatePicker设置日期范围

    设置 结束日期不超过当天日期:设置 开始日期不超过结束日期:设置 开始日期默认显示当月1日的日期,结束日期显示当天日期?<label>开始日期:</label><inpu ...

  2. 20145301《网络对抗》Exp2 后门原理与实践

    20145301<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 系统或者某些软件自身留下的后门. 钓鱼网站等非正规网站上捆绑下载 例举 ...

  3. LINUX实践--程序破解

    实验思想 本次实验的主要思想有两个,第一个是修改跳转指令,把它变成无条件跳转使得无论输入什么用户名都跳转到失败的那个选项中去,第二个思想是修改比对的内容,即不判断条件,从而成功 实验步骤 1.首先从老 ...

  4. 20135320赵瀚青LINUX第七周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的内容主要是讨 ...

  5. HBase Shell相关

    1.进入hbase命令行 ./hbase shell 2.基本命令 显示hbase中的表List list 查询user表中的所有信息Scan scan 'users' 清空user表中的数据Trun ...

  6. Python学习札记(四十三) IO 3

    参考:操作文件和目录 NOTE: 1.Python内置的os模块可以直接调用操作系统提供的接口函数: 2.os.name 打印操作系统的名称:如果是posix,说明系统是Linux.Unix或Mac ...

  7. Codeforces Round #419 (Div. 2) B. Karen and Coffee(经典前缀和)

    http://codeforces.com/contest/816/problem/B To stay woke and attentive during classes, Karen needs s ...

  8. /msgsrvmgr.cpp:4:26: fatal error: kdl/frames.hpp: No such file or directory #include <kdl/frames.hpp>

    /home/xxx/ros_workspace/src/bp_protocol_bridge/protospot/src/msgsrvmgr.cpp::: fatal error: kdl/frame ...

  9. Morgan logger

    var logger = require("morgan"); res.render = function(view, options, fn){ options = option ...

  10. bzoj1854: [Scoi2010]游戏 贪心

    lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...