npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mucuna

v0.2.0

Published

猫豆一套简单的前端编译平台

Downloads

25

Readme

Mucuna(猫豆)

一套简单的前端编译平台

碰到的问题

  1. 使用过的编译工具,都是在开发阶段,就开始编译,造成调试起来很麻烦(多文件合并/压缩后,无法准确定位到是那个文件)。
  2. 配置太复杂
  3. 需要维护编译前和编译后的文件
  4. 版本更新太复杂
  5. 图片需要手动css sprite

Mucuna目前已解决的问题

  1. 通过 document.write 来输出js脚本,通过 @import 来输出css,在上线阶段通过,Mucuna 通过正则替换掉这些配置,来进行打包
  2. 使用者只需要配置json文件即可
  3. 上线阶段才需要编译,所以版本控制中只需要一份开发代码即可
  4. Mucuna会通过文件内容的md5来,更新每一个文件的版本号
  5. Mucuna会检查语法,来提示你,不合理的语法错误
  6. Mucuna会对smarty模板、html、js、css进行压缩,来减少带宽的浪费
  7. 你也可以帮Mucuna增加拓展,来提示你的开发效率
  8. 自动帮助你合并图片(以combo内的每一个样式表,都会生成一个相应的图片),并且替换combo后的css

提示

  • 使用本系统必须安装nodejs
  • 需要combo的文件,必须通过 document.write 或者 @import 来引用

安装

npm install -g mucuna

配置项

在根目录下运行

mucuna -a

会自动生成 config.json ,可以通过配置,其中的项来执行不同的功能

你也可以手动创建该文件,如下:

注意:json文件中请不要包含注释

在根目录下添加json文件,内容如下:

{
	// 模板目录,针对模板进行压缩处理
	"TPL_PATH": "/tpl",
	// 静态资源目录
	"STATIC_PATH": "src",
	// 合并文件存放文件夹
	"COMBINE_DIR": "combo",
	// 输出目录,会在根目录创建
	"BUILD_PATH": "output",
	// 需要sprite图片的源路径
	"SPRITE_SOURCE_PATH": "src/img",
	// 生成sprite图片后的路径
    "SPRITE_DEST_PATH": "src/sprites/",
    // css中更新后的路径(防止实际路径和显示路径不同)
    "SPRITE_CSS_PATH": "../../sprites/",
	// 项目文件编码
	"FILE_ENCODE": "utf-8",
	// 编码检查
	"ENCODE_CHECK": true,
	// css语法检查
	"CSS_REGULAR_CHECK": true,
	// js语法检查
	"JS_REGULAR_CHECK": false,
	// css是否合并
	"CSS_COMBINE": true,
	// js是否合并
	"JS_COMBINE": true,
	// html是否压缩
	"HTML_COMPRESS": true,
	// css是否压缩
	"CSS_COMPRESS": true,
	// js是否压缩
	"JS_COMPRESS": true,
	// 图片是否优化
	"OPTIMIZE_IMG": false,
	// 外链文件是否存放到本地
	"EXTERNAL_TO_INLINE": false
}

基本用法

  1. 在项目根目录下建立配置文件
  2. 在根目录运行
mucuna (此处为配置文件)
  1. 编译完成提示或编译失败提示
  2. 执行代码目录生成output文件夹
  3. 上线时,拷贝output下文件上线

示例

点击查看

说明

output是Mucuna编译后,文件生成目录。

后续添加的模块编译后,都会生成到output文件夹内。

已支持功能

  • 增加css sprite,并且自动替换样式中相应的路径
  • 针对smarty模板做压缩
  • js、css语法检查
  • css整理
  • 图片压缩(自动拷贝到output下的图片)
  • 增加日志
  • html、js、css压缩
  • 文件版本号自动更新(通过文件md5)