Node.js Power 本质是一种静态编译的实现。
把某个文件在 Node.js 环境运行的结果,输出到微信小程序运行环境中,以此来满足特定的需求。
Node.js Power 会把项目中 src 目录下类似 xxx.nodepower.js 命名的文件,以 Node.js 来运行,
然后把运行的结果,以「字面量对象」的形式写到 dist 目录下对应的同名文件 xxx.nodepower.js 文件去。
以 src/config/index.nodepower.js 为例:
const fs = require('fs'); const path = require('path'); const files = fs.readdirSync(path.join(__dirname)); const result = {}; files .filter(name => name !== 'index.js') .forEach((name) => { Object.assign(result, require(path.join(__dirname, `./${name}`))); }); module.exports = result;
该文件,经过 Node.js Power 构建之后:
dist/config/index.nodepower.js:
module.exports = { "appInfo": { "version": "0.0.1", "env": "test", "appid": "wx85fc0d03fb0b224d", "name": "beautywe-framework-test-app" }, "logger": { "prefix": "BeautyWe", "level": "info" } };
这就满足了,随意往 src/config/ 目录中扩展配置文件,都能被自动打包。
Node.js Power 已经被集成到多环境开发的 dev, test, prod 中去。
当然,你可以手动运行这个构建任务:
$ gulp nodejs-power
NPM
BeautyWe Framework 实现支持 npm 的原理很简单,总结一句话:
使用 webpack 打包 src/npm/index.js ,以 commonjs 格式输出到 dist/npm/index.js
这样做的好处:
实现简单。
让 npm 包能集中管理,每次引入依赖,都好好的想一下,避免泛滥(尤其在多人开发中)。
使用 ll dist/npm/index.js 命令能快速看到项目中的 npm 包使占了多少容量。
新增 npm 依赖
在 src/npm/index.js 文件中,进行 export:
export { default as beautywe } from '@beautywe/core';
然后在其他文件 import:
import { beautywe } from './npm/index';
更多
总的来说,BeautyWe 是一套微信小程序的开发范式。
core 和 plugins 扩展原生,提供复杂逻辑的封装和插拔式使用。
而 framework 则负责提供一整套针对于微信小程序的企业级项目解决方案,开箱即用。