NSGM CLI

作者:

一个具有代码模板生成能力的全栈开发框架,帮助开发者高效构建Web应用。

开源情况

NSGM CLI 是一个活跃维护的开源项目,欢迎社区贡献和使用:

快速安装

全局安装

npm install -g nsgm-cli

或作为项目依赖安装

npm install –save nsgm-cli

为什么选择NSGM CLI?

  • 开箱即用:集成了现代Web开发所需的所有核心功能

  • 开发效率:通过代码模板生成大幅提高开发速度

  • 全栈解决方案:前后端一体化设计,无缝衔接

  • 活跃维护:定期更新和bug修复,确保框架稳定性

  • 社区支持:开源社区持续贡献和改进

技术栈

特性

  • 全栈架构设计

  • 自动代码模板生成

  • 快速开发工作流

  • 集成GraphQL API

  • MySQL数据库支持

  • 使用bcrypt加密的安全登录系统

  • 完整的项目脚手架

  • 开发与生产环境配置

  • 自动化部署支持

适用场景

  • 企业级Web应用开发

  • 个人项目快速原型设计

  • 全栈开发学习与教学

  • 需要高效开发流程的团队

  • 需要统一技术栈的中大型项目

命令行工具

基本命令

| 命令
| 描述

| nsgm init
| 初始化项目

| nsgm upgrade
| 升级项目基础文件

| nsgm create
| 创建模板页面

| nsgm delete
| 删除模板页面

| nsgm deletedb
| 删除模板页面和数据库表

| nsgm dev
| 开发模式

| nsgm start
| 生产模式

| nsgm build
| 构建项目

| nsgm export
| 导出静态页面

参数说明

dictionary: 与export/init命令一起使用,默认值为webapp

nsgm init dictionary=webapp

或简化为

nsgm init webapp

controller: 与create/delete命令一起使用,必需参数

nsgm create math

action: 与create/delete命令一起使用,默认值为manage,跟在controller后面

nsgm create math test

开发流程示例

1. 创建新项目

安装CLI工具

npm install -g nsgm-cli

初始化新项目

nsgm init myproject

进入项目目录

cd myproject

安装依赖

npm install

2. 创建功能模块

创建用户管理模块

nsgm create user

创建带自定义操作的产品模块

nsgm create product detail

3. 启动开发服务器

启动开发模式

nsgm dev

快速设置

生成密码哈希:

使用npm脚本

npm run generate-password yourSecurePassword

创建.env文件:

LOGIN_USERNAME=admin
LOGIN_PASSWORD_HASH=your_generated_hash_here

确保.env在你的.gitignore文件中。

⚠️ 重要提示: 永远不要将密码或.env文件提交到版本控制系统。

项目配置

next.config.js

const { nextConfig } = require('nsgm-cli')
const projectConfig = require('./project.config')

const { version, prefix, protocol, host } = projectConfig

module.exports = (phase, defaultConfig) => {
let configObj = nextConfig(phase, defaultConfig, {
version,
prefix,
protocol,
host
})

return configObj
}

mysql.config.js

const { mysqlConfig } = require('nsgm-cli')
const { mysqlOptions } = mysqlConfig
const { user, password, host, port, database } = mysqlOptions

module.exports = {
mysqlOptions: {
user,
password,
host,
port,
database
}
}

project.config.js

const { projectConfig } = require('nsgm-cli')
const pkg = require('./package.json')

const { prefix, protocol, host, port } = projectConfig
const { version } = pkg

module.exports = {
version,
prefix,
protocol,
host,
port
}

服务器目录结构

项目根目录中的server文件夹包含以下内容:

目录说明

  • apis/ – 存储REST API接口

  • modules/ – 存储GraphQL解析器和模式

  • plugins/ – 存储GraphQL插件

  • *.js – 路由文件

示例代码

路由文件示例 (server/rest.js)
const express = require('express')
const moment = require('moment')

const router = express.Router()

router.use((req, res, next) => {
const fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl
console.log(moment().format('YYYY-MM-DD HH:mm:ss') + ' ' + fullUrl)
next()
})

router.get('/*', (req, res) => {
res.statusCode = 200
res.json({ name: 'TEST' })
})

module.exports = router

REST API示例 (server/apis/hello.js)
const express = require('express')
const router = express.Router()

router.get('/*', (req, res) => {
res.statusCode = 200
res.json({ name: 'Hello' })
})

module.exports = router

GraphQL模式示例 (server/modules/link/schema.js)
module.exports = {
query: link: String ,
mutation: linkUpdate(link: Date): String ,
subscription: , type:
}

GraphQL解析器示例 (server/modules/link/resolver.js)
let localLink = ''

module.exports = {
link: () => {
return localLink
},
linkUpdate: ({ link }) => {
console.log('link', link)
localLink = link
return localLink
}
}

GraphQL插件示例 (server/plugins/date.js)
const moment = require('moment')
const { Kind } = require('graphql/language')
const { GraphQLScalarType } = require('graphql')

const customScalarDate = new GraphQLScalarType({
name: 'Date',
description: 'Date custom scalar type',
parseValue: (value) => moment(value).valueOf(),
serialize: (value) => moment(value).format('YYYY-MM-DD HH:mm:ss:SSS'),
parseLiteral: (ast) => (ast.kind === Kind.INT ? parseInt(ast.value, 10) : null)
})

module.exports = { Date: customScalarDate }

社区与支持

  • 问题反馈:如果您在使用过程中遇到任何问题,请在GitHub Issues提交

  • 功能请求:有新功能建议?欢迎在Issues中提出

  • 贡献代码:我们欢迎Pull Requests,请确保遵循项目的代码规范

  • 联系作者:有任何问题可以通过GitHub联系项目维护者

成功案例

NSGM CLI已被用于多个成功的Web应用项目:

  • 企业内部管理系统

  • 数据可视化平台

  • 电子商务网站

  • 个人博客系统

  • 教育培训平台

未来规划

我们正在积极开发以下功能:

  • 更多数据库支持(MongoDB, PostgreSQL)

  • 容器化部署支持

  • 更丰富的UI组件库

  • 微服务架构支持

  • 更完善的文档和教程


NSGM CLI – 让全栈开发更简单、更高效

相关阅读

NSGM CLI 是什么?

一个开源命令行工具,用于快速搭建 Next.js 加服务端能力的全栈项目骨架。

适合什么场景?

适合想用 Next.js 做前端、配合 Node 或服务端能力做全栈应用的开发者,省去重复的项目初始化。

提供哪些命令?

提供创建项目、创建功能模块、启动开发服务器等基本命令,并支持参数化的项目配置。

技术栈是什么?

围绕 Next.js 与现代前端工具链,配合 MySQL 等后端配置,形成一套可复用的脚手架。

怎么开始一个项目?

安装后通过基本命令创建新项目与模块,再启动开发服务器即可进入迭代,配置项可在项目配置文件里调整。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

首页 简历 商店 Web Chat Nsbp 关于 隐私政策

@ 2026 ESN
沪ICP备2024079226号-1   沪公网安备31010502007082号