ringojs 使用rp 包管理web 应用依赖
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 应用依赖的更多相关文章
- ringojs 的包管理
ringojs 集成了包管理目前有几种方式 ringo-admin rp ringo-admin 安装包 我们使用ringo-admin 安装rp ringo-admin install grob/r ...
- Maven入门-依赖管理(Jar包管理)(二)
1 依赖管理(Jar包管理) 1.添加依赖
- 拜拜了,GOPATH君!新版本Golang的包管理入门教程
Go 1.11和1.12实现了对包管理的初步支持,Go的新依赖管理系统使依赖版本信息明确且易于管理.Using Go Modules - The Go Blog 新的包管理模式有什么不同? 作为Go语 ...
- 永久解决Sublime包管理package control 打开install package报错 There are no packages available for installation
很多用户在使用sumblime安装插件的时候,打开package control的install package会出现报错:There are no packages available for in ...
- 使用Bower作为Web包管理器
Bower是一个简单易用的Web包管理器,通过它我们可以非常简便的安装各种Web框架和库,同时它也负责管理不同包之间的关系依赖. 安装Bower Bower需要 npm 和 Git 的支持,在安装Bo ...
- Bower —— 一个Web的包管理工具
作者:江剑锋 github地址:https://github.com/bower/bower Bower为何物 Bower是一个Web开发的包管理软件.前端开发中,或多或少,都会以来于现成的fra ...
- 项目jar包管理,使用 .userlibraries 文件增加jar包的可移植性,明确jar包依赖,多项目共用jar包里
当一个普通的项目,在不适用maven 等jar包管理工具的时候,通常我都会直接把jar 包复制lib下,并且在build path 中直接添加额外jar包,或者使用user_libraries包所用的 ...
- bower一个强大的前端依赖包管理工具
在介绍之前,你必须的知道bower是基于nodejs开发的,所以你首先必须得有个nodejs环境,至于这么安装nodejs网上一大堆教程,对了使用bower还需要安装git,这里就不多说了. #### ...
- 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项
当通过Nuget包管理器获取还原组件时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...
随机推荐
- ZOJ Monthly, January 2018 Solution
A - Candy Game 水. #include <bits/stdc++.h> using namespace std; #define N 1010 int t, n; int a ...
- Hopper Disassembler v4 ( The macOS Disassembler, Decompiler and Debugger)
Hopper Disassembler v4 ( The macOS Disassembler, Decompiler and Debugger) Reveal13 (UI) 两个好东西..不知道的自 ...
- QML事件处理 八
1.MouseArea MouseArea 是一个不可见的项目,通常用来和一个可见的项目配合使用来为其提供鼠标处理.鼠标处理的逻辑可以包含在一个MouseArea项目中. MouseArea的enab ...
- 浅谈location对象
简介 Location 对象存储在 Window 对象的 Location 属性中,表示那个窗口中当前显示的文档的 Web 地址.通过Location对象,可以获取URL中的各项信息,调用对象方法也可 ...
- RESTful源码学习笔记之RPC和Restful深入理解
以下资料搜集自网络 0x00 RPC RPC 即远程过程调用(Remote Procedure Call Protocol,简称RPC),像调用本地服务(方法)一样调用服务器的服务(方法).通常的实现 ...
- 在Ubuntu 18.04上安装Tensorflow
我们将经历几个阶段,安装cuda-9.0,cudnn和tensorflow cpu以及tensorflow gpu版本.最后我们将用cuda-9.0安装pytorch.在MARVEl电影中黑寡妇的“我 ...
- CCNA学习指南 -开放最短路径优先OSPF(单区域)
在上个世纪九十年代撰写的<TCP/IP协议详解 卷一:协议>的动态选路中,内容大部分还是介绍 RIP路由选择信息协议,在互联网络如此发达的今天,RIP因为它的局限性逐步被OSPF取代. 在 ...
- 子网掩码与ip有实际关系吗?
子网掩码是作为ip地址的标识,还是本身就是ip地址的一部分?例如10.10.10.1/24和10.10.10.1/25是同一个ip地址吗? 作者:知乎用户链接:https://www.zhihu.co ...
- [osg][osgearth]osg的分页加载,代码和结构图
DatabasePager加载数据的过程: 多线程 使用DatabasePager加载数据的流程: 左侧的图框表示数据的检索和输入, 中间的白色框表示用于数据存储的内存空间,而右边的图框表示存储数据的 ...
- 用JavaScript做一个小小设计
这个项目是我无聊时完成的,参阅过很多大神的示例,其实方法并不难主要是js和css样式的设计,我发现自己还有很多的js代码写不出来更加不用提看的明白了,(PS吐槽一下:革命尚未成功,同志还需努力啊!)此 ...