通过npm的前端依赖:它是如何工作的?

ava*_*sin 3 node.js npm

我已经通过npm安装了主干网,它被放置在node_modules文件夹中(不在web根目录中)如何将它包含在我的index.html文件中?

Myr*_*tol 7

完全基于CommonJS(即节点式)模块编写前端代码是可能的.

如果通过npm安装前端依赖项,则可以使用Browserify之类的包捆绑工具将所有依赖项捆绑到一个文件中.这样,您可以像使用服务器端软件包一样使用依赖于浏览器的软件包:使用Node的require函数.您只需要一个模块(在node_modules目录或常规文件中)并使用它.

browserify的基本用法非常简单:只需要browserify clientcode.js > webroot/clientbundle.js,webroot你的web根目录在哪里.然后包含clientbundle.js在你的html文件中.

clientcode.js应该是客户端的"主"脚本,可与Express app的"app.js"(或类似)相媲美.它可以是您想要的大小,但您也可以仅将其用作引导代码来运行在其他CommonJS模块中定义的函数.

请注意,您可以轻松地将浏览器依赖项与常规依赖项混合使用.您事先包含的任何脚本(比如非浏览器化的jquery)将成为全局脚本,而browserify不会阻止您访问全局变量.

请注意:基于客户端库通过npm分发的一些软件包(完全)不符合CommonJS规范.有些可能不会导出任何东西,有些可能(意外地)创建全局变量等.

另请参阅使用CommonJS和Browserify的Backbone应用程序.

浏览器的一些替代方案:

我没有试过它们.