使用require.js收集并将npm安装的模块内联到前端JS文件中

时间:2014-08-01 09:04:47

标签: node.js requirejs gruntjs

我有一个项目,并通过underscore安装了例如markednpm install。当我在项目根文件夹中启动node时,我require var __ = require("underscore") marked,类似于myscript.js。这是我在后端使用两个库的方法,如果需要的话。现在我想编写一个传递给浏览器的index.html,例如在我的js文件中引用它。在这个脚本中,我也想使用两个提到的库。

为此,我认为有两种方法:

  1. 内联所需的文件(我想我更喜欢这个)
  2. 将所需的require.js文件复制到一个单独的目录中,并在浏览器中使用node
  3. 在任何一种情况下,我都不想将程序指向找到lib的位置,类似于require("lib"),它只知道grunt-contrib-requirejs知道该怎么做。

    我的问题是:

    • 我是否理解正确?
    • requirejs: { compile: { options: { baseUrl: "./", name: "src/main.js", out: "build/result.js" } } } 是否是我自动完成此过程所需要的东西?
    • 有人可以向我提供一段代码或指向我的博客文章吗?我想我失去了概述,我发现the documentation但很多事情让人困惑。

    这是我到目前为止所做的:

    我的Grunt任务的配置:

    main.js

    我的var _ = require("underscore") function foo(values) { _.find(values, function(value){ return false; }); }

    function foo(e){_.find(e,function(e){return!1})}var _=require("underscore");define("src/main.js",function(){});
    

    结果:

    {{1}}

    ......不完全是我想的。

1 个答案:

答案 0 :(得分:0)

虽然这不能回答我原来的问题,但我发现使用节点模块并不是前端方法,我发现bower。无论如何,整件事情非常令人沮丧。

Bower允许我安装所需的软件包,然后有grunt模块允许JS文件在特殊部分“插入”HTML文档,或者连接成一个文件。 Bower-ready模块应附带bower.json文件。这让我从node_modules文件夹手动收集所有需要的js文件的工作中解脱了,就像我在问题中一样害怕。