New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-cube

Package Overview
Dependencies
Maintainers
1
Versions
190
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-cube

a new way to write js in browser

  • 0.0.10
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7
decreased by-70.83%
Maintainers
1
Weekly downloads
 
Created
Source

Cube

logo

像node.js一样编写浏览器端代码,无需争端AMD、还是CMD,只是build方式的不同,重要的是书写方便、简洁。

install

npm install -g node-cube

init

每一个web应用都有一包静态资源 每一个web应用的静态资源,都应该被设计成可自由部署 (static.server/path, 虽然很多时候静态资源都在同域下) 每一个web应用都会包含这么一个目录叫静态资源, 比如:

  webapp -|
          | - wwwroot | << 静态资源目录
                      | - js
                      | - css
                      | - imgs

  // 或者这种结构
  webapp -|
          | - wwwroot |  << 静态资源目录
                      | main.js
                      | - controller
                      | - lib
                      | - component |
                                    | - tabel |
                                              | table.js
                                              | table.css
                                              | table.tpl

cube的初始化就从这个wwwroot开始,进入wwwroot目录,cube内建静态资源服务,启动服务:

  # 初始化工程
  cube init  // --jade 启用jade, --ejs 启用ejs
  # 启动静态服务
  cube run

根据命令行提示的地址访问, ok,你的前端资源可以像node.js一样编写了。

在设计前端框架的时候,通常都会考虑到这点:前端资源需要可以被方便的部署到CDN等资源(动静态资源分离) cube的运行模式就是遵循这一设计思路的

集成到项目的connect中

假如你的工程已经是connect工程,或者express工程,那么可以很方便的将cube集成到工程中

  var Cube = require('node-cube');
  Cube.init({
    root: '/wwwroot',  // static resource path, like wwwwroot below
    router: '/res/',   // static resource url router
    middleware: false  // run as a service, not return a middleware
  });

ok, 访问你的调试环境 http://localhost:port/res/xxx, 静态资源+模块化支持

集成到其他框架中

加入你的框架比较特殊,没关系,cube可以返回一个middleware方法 middleware(req, res, next)

var Cube = require('node-cube');
var middleware = Cube.init({
  root: '/wwwroot', // static resource path, like wwwwroot below
  middleware: true //
});

app.use('/static', middleware);

编写一个模块

// header.js
var cookie = require('cookie');
function  init() {
  var nick = cookie.get('nick');
  if (!nick) {
    nick = 'guest';
  }
  $('node-nick').text(nick);
}

init();
// 异步加载脚本
async('./tset.tpl', function(render) {
  render({appName: "cube"});
});

ok,一个很简单的一个模块,设置头部用户登录昵称

模块加载是支持像node一样寻址node_modules目录的,在wwwroot目录下安装模块,可以被直接require使用, 所以把你的代码写好了,发布到npm公用吧!

引用现有的包, 你只需要 (a)编写好package依赖 (b) npm install (c) 像node一样引用这些模块

优化加载

模块化之后带来的一个问题,就是文件非常零碎,有时候甚至影响到了执行性能。 这个时候可以通过 @merge 这个标记来优化文件

/**
 * file description
 * @merge
 */
var a = require('a');
var b = require('b');
var c = require('c');

通过标记@merge, 服务器会将a,b,c三个模块合并到当前模块的文件中,一起输出。 通过这个方法,可以将整个app中常用的一些模块打包成一个文件

打包发布

进入生产环境之前,模块都会被预编译、压缩成一个个小文件,然后发布到线上(cdn服务器、云存储 或 其他)

cube build static_file_path

在静态资源目录下,编写 .cubeignore来排除不需要被处理的文件,格式和.gitignore一样

FAQs

Package last updated on 26 Jun 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc