Nodejs前后端混合式代码包管理器xpm,完美支持CommonJS,灵感来自meteor,seajs的spm

Nodejs前后端混合式代码包管理器xpm,完美支持CommonJS,灵感来自meteor,seajs的spm

代码地址: https://github.com/xiamidaxia/xpm

#Xiami Package Manager

A powerful web server package manager that can manage the client side and server side code together, also bind many useful tools like coffeescript, less, stylus, jade, imagemin, mocha, chai and so on.

Using in the xiami web framework

##documents

中文文档

##tutorials

//init server side code manager
var xpmServer = require('xpm2').serverCreate({
    family: {
        meteor: __dirname + "/meteor",
        //declare your family code path
        myfamily: "/any/real/path"
    }
})

var mypack = xpmServer.require(‘myfamily/mypack’)

console.log(mypack.version)

//init client side code manager
var xpmClient = require(‘xpm2’).clientCreate({
family: {
meteor: __dirname + “/meteor”,
myfamily: “/any/real/path”
},
dest: __dirname + “/” + “dest”
})

xpmClient.add(‘myfamily/mypack’) xpmClient.run()

In the ‘mypack’ package directory, you need to add the file package.js just like this:

//just describe
Package.describe({
    info: "this is a mypack package."
    version: "0.0.1"
})
//files you want to use both client side and server side
Package.all({
    files: ["common.js"]
    test_files: ["test/**/*.js"]
})
//files only in server
Package.server({
    imports: ['underscore']             
    files: ['file1.js', 'file2.js']
})
//files in client, you can use many file types like '.less' '.styl' '.tpl' and so on
Package.client({
    imports: ['underscore']             
    files: ['client*.js', "**/*.styl", "**/*.jpg"]
})


3 回复

Nodejs前后端混合式代码包管理器xpm,完美支持CommonJS,灵感来自meteor,seajs的spm

摘要

xpm 是一个强大的前端和后端代码包管理器,灵感来源于 Meteor 和 SeaJS 的 SPm。它不仅支持 CommonJS 规范,还集成了许多有用的工具如 CoffeeScript、Less、Stylus、Jade 等。

代码地址

示例

以下是一些使用 xpm 的示例代码,帮助你快速上手。

初始化服务器端代码管理器
var xpmServer = require('xpm2').serverCreate({
    family: {
        meteor: __dirname + "/meteor",
        // 声明你的家族代码路径
        myfamily: "/any/real/path"
    }
});

var mypack = xpmServer.require('myfamily/mypack');
console.log(mypack.version);
初始化客户端代码管理器
var xpmClient = require('xpm2').clientCreate({
    family: {
        meteor: __dirname + "/meteor",
        myfamily: "/any/real/path"
    },
    dest: __dirname + "/" + "dest"
});

xpmClient.add('myfamily/mypack');
xpmClient.run();
包配置文件 package.js

mypack 包目录中,你需要添加一个 package.js 文件来描述包的信息:

Package.describe({
    info: "this is a mypack package.",
    version: "0.0.1"
});

// 公共文件,可以在客户端和服务器端使用
Package.all({
    files: ["common.js"],
    test_files: ["test/**/*.js"]
});

// 仅在服务器端使用的文件
Package.server({
    imports: ['underscore'],
    files: ['file1.js', 'file2.js']
});

// 仅在客户端使用的文件
Package.client({
    imports: ['underscore'],
    files: ['client*.js', "**/*.styl", "**/*.jpg"]
});

文档

总结

通过上述示例,你可以看到 xpm 提供了强大的功能来管理和组织前后端代码,并且易于集成到现有的项目中。希望这些示例能够帮助你快速上手使用 xpm


sj为何要自己弄pm,想不通。。。

Node.js 前后端混合式代码包管理器 XPM

XPM 是一个强大的 Web 服务器包管理器,它能够统一管理和处理前端和后端的代码。它的灵感来源于 Meteor 和 Sea.js 的 SPM,旨在为开发人员提供一种更方便的方式来组织和管理代码。

安装与配置

你可以通过以下命令安装 XPM:

npm install xpm2 --save

初始化 Server 端代码管理器

下面是一个简单的示例,展示如何初始化一个 Server 端代码管理器,并加载和使用一个名为 mypack 的包:

// 初始化 server 端代码管理器
var xpmServer = require('xpm2').serverCreate({
    family: {
        meteor: __dirname + "/meteor",
        // 声明你的包路径
        myfamily: "/any/real/path"
    }
});

// 加载 mypack 包
var mypack = xpmServer.require('myfamily/mypack');

// 输出包的版本信息
console.log(mypack.version);

初始化 Client 端代码管理器

下面是如何初始化一个 Client 端代码管理器,并添加和运行一个包:

// 初始化 client 端代码管理器
var xpmClient = require('xpm2').clientCreate({
    family: {
        meteor: __dirname + "/meteor",
        myfamily: "/any/real/path"
    },
    dest: __dirname + "/" + "dest"  // 输出目录
});

// 添加 mypack 包
xpmClient.add('myfamily/mypack');

// 运行客户端管理器
xpmClient.run();

创建一个包文件 package.js

mypack 包的根目录下,你需要创建一个 package.js 文件来描述该包的结构和内容:

// package.js
Package.describe({
    info: "这是一个我的包。",
    version: "0.0.1"
});

// 公共文件,可以在客户端和服务器端使用
Package.all({
    files: ["common.js"]
});

// 仅在服务器端使用的文件
Package.server({
    imports: ['underscore'],
    files: ['server/file1.js', 'server/file2.js']
});

// 仅在客户端使用的文件
Package.client({
    imports: ['underscore'],
    files: ['client/file1.js', '**/*.styl', '**/*.jpg']
});

通过以上步骤,你就可以使用 XPM 来管理你的前后端代码了。XPM 支持 CommonJS 模块规范,并且可以轻松地集成各种前端工具如 CoffeeScript、Less、Stylus、Jade 等。

回到顶部