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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2017-08-17 keycloak && docker安装 &&spring boot 集成使用
2017-08-17 gogs docker 安装
2016-08-17 强弱主机模式
2014-08-17 转 Katana 项目入门