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.jsexports.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-localWORKDIR /appCOPY . /app/RUN rp install -yENTRYPOINT [ "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/latestringo index.js
- docker 运行
docker-compose builddocker-compose up -d
运行效果
安装的包pakcages
web 运行界面
参考资料
https://github.com/rongfengliang/ringojs-module-demo ?
https://ringojs.org/documentation/package_management/
ringojs 使用rp 包管理web 应用依赖
原文地址:https://www.cnblogs.com/rongfengliang/p/9492693.html