我有一些带有 5 个文件的 node.js 的纯 js 代码:
+--compress.js
+--util
+--vector.js
+--map.js
+--set.js
+--util.js
然后 compress.js require
s set.js 和 util.js,set.js require
s map.js 依次require
是 vector.js 和 util.js 现在我想从我自己的简单 Web 服务器(快速应用程序)为浏览器提供此代码. 我有哪些选择?我是新手,所以我有一些基本问题,而不是那么基本的问题。如果我想从我的 html 页面中包含 compress.js,我想知道可能的选项。据我了解,我可以修改代码以与 node.js 和浏览器兼容。我用什么来做,require-js?当代码与服务器端和客户端兼容时,如何在 nodejs 中调用它?另一种选择是使用 browserify 并生成可以在客户端使用的 compress.js 版本。
然后,有 uglify-js 可以缩小 compress.js 文件(并创建相应的地图文件),对吧?
现在我的目标是保持我的 js 代码不变并且可以从浏览器访问。为此,据我了解,我必须执行服务器端代码,自动浏览这些文件(例如,以正确的顺序连接它们)并通过 uglify 传递结果并即时提供结果。根据我的理解,如果我只包含一个文件 compress.js 并尝试在 chrome 中调试该代码,我将在 chrome 调试器中看到,就好像我将所有这些文件原样包含在 chrome 中一样,使用 nodejs 样式的方式来包含依赖项. 我是对的,我需要使用哪些工具/库来实现这一目标?
下一步是以这样一种方式缓存该即时转换的结果,以便如果我修改任何包含的文件(例如,如果我在实时服务器上编辑它们或完全替换为修改后的版本)所有依赖文件将自动需要被再生。这可能发生在 compress.js 的下一个 GET 上(例如,在内部我需要在我的应用程序依赖图中记住并在每个 GET 上验证它GET /compress.js
),或者,我需要添加某种文件系统/操作系统事件挂钩当任何文件发生更改时,在我的应用程序中触发一个事件,并且该事件将触发重建我的 compress.js(或任何其他文件)的浏览器化+丑化版本。是否有任何现有的选项可以在 node.js 中执行类似的操作,或者我需要自己实现所有这些(在这种情况下,我应该研究哪些库工具?)
- 看起来这会产生我想要的东西(带地图的浏览+丑化版本):https ://github.com/gulpjs/gulp/blob/master/docs/recipes/browserify-uglify-sourcemap.md