javascript - 如何使我的 JavaScript 项目更易于管理?

标签 javascript

目前我正在构建一个 JS 库,它可以附加到任何 HTML5 Canvas 元素上下文并与之交互。

但是,该项目开始变得越来越庞大,包含大量文件和数千行代码。每个文件代表一个不同的对象/模块。每个文件目前都是这样布局的,我真的很想保留这种风格的一些外观:

Object = function() { 
    // constructor
}

Object.prototype.method1 = function() {
    // Logic
}

Object.prototype.method2 = function() {}; // .... etc

在 HTML 的开发版本中,我有一个 bajillion 脚本标签(每个文件一个)需要以精确的顺​​序(用于依赖项)。我意识到这是非常低效的,而且不太容易维护。但是我不确定尝试使我的项目更易于构建和维护的最佳方向是什么。为了方便工具和 CommonJS 模块系统而移植到 NodeJS?转换为 RequireJS?我刚开始阅读 Grunt,它对我的​​情况有用吗?

改进我的组织和引入某种构建系统都是我推迟了一段时间的事情。我现在后悔了。

最佳答案

你需要一个模块系统

RequireJS 和 RequireJS 优化器是这里的规范解决方案。您可以使用 browserify如果你更倾向于 Node.js,或者如果你不喜欢 AMD 的 cruft (define(function (require, exports, module) { ... }));)---可能与Cajon结合开发中。


像 Grunt 这样的构建工具并不是这里最重要的因素。这主要在你有多个构建步骤时有用——例如,运行 RequireJS 优化器,然后将你的 SASS 编译为原始 CSS,然后连接 CSS,然后将你的图像转换为 Sprite ,然后......等等。

关于javascript - 如何使我的 JavaScript 项目更易于管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718799/

相关文章:

javascript - 确定视口(viewport)滚动条的位置

javascript - 了解 jQuery 选择器输出

javascript - 根据 Angular JS 中的属性值在列表中查找对象

javascript - 带有大量嵌入式 JavaScript 和其他静态文件的 ASP.NET 自定义服务器控件

javascript - jquery 返回 false 不在从 onclientclick 按钮事件调用的函数中工作

javascript - DOMContentLoaded 的 addEventListener() 不起作用

javascript - 从 Array 设置背景图片 url

javascript - 使用 getElementsByTagName() 方法从多个输入字段获取数据

javascript - 在 Symfony 中渲染一个完整的 Twig 模板,用 ajax 扩展另一个模板

javascript - 从服务器加载的js文件不起作用,但本地加载可以起作用