一个JS开源库项目应该怎么组织?

How should I organize a JS open source library project?

我维护一个 JS 前端库。

为了开始,我把它写在 Rails 中,因为这就是我所知道的。如果您安装了 Rails,它工作得很好,但对于其他人来说,这是一种非常愚蠢的工作方式。

在 Github 上组织用 CoffeeScript 编写的前端 JS 库的 "best practice" 方法是什么?

需要有简单的方法

  1. 从一组 CoffeeScript 文件构建压缩编译版本。

  2. 运行 开发期间浏览器中的新版本

  3. 运行 一个测试套件

我不确定我的建议是否能回答你的问题。

我的建议是

  1. 使用依赖管理工具,例如 npm 或 bower 来管理第 3 方库
  2. 使用构建工具,例如 g运行t 或 gulp 或 webpack 来构建您的包,包括 minify,只获取需要的文件,将 coffee 编译为 js
  3. 使用mocha或其他测试框架运行测试

然后将上述任务集成到 ci 工具中,例如 jenkins 以实现自动化

您的 jenkins 工作将逐步完成这些任务

  1. 从 github auto
  2. 中提取代码
  3. 清理你的仓库,例如,git reset --hard && git clean -xdf
  4. npm 安装或 bower 安装
  5. 运行 webpack 或 g运行t 或 gulp
  6. 运行 测试

我的建议是将其发布为具有如下目录结构的 npm 模块:

package.json
.gitignore (include lib and dist)
.npmignore (include test)
webpack.config.js
src/
    index.coffee
    (other sources)
lib/ (generated by npm script)
    index.js (compiled)
dist/ (optional - for browser bundle)  
    bundle.js

webpack/dist 支持是可选的,但对于想要在没有 webpack 或 browserify 的情况下使用该库的任何用户来说会很方便。