使用 grunt.js 和 RequireJS 实现前端项目结构

前端开发中,使用合适的项目结构能够让代码更加清晰易读、维护方便。本文将介绍一种前端项目结构,同时结合 grunt.js 和 RequireJS 实现 JS 文件的合并和模块化管理。

项目结构

--- -----
-   --- ----
-   --- ---
--- ----
-   --- ---
-   -   --- ----
-   -   -   --- -------
-   -   -   --- ---------
-   -   -   --- ------
-   -   -   -   --- -----------
-   -   -   -   --- ------------
-   -   -   --- -------
-   -   -       --- ------------
-   -   -       --- -------------
-   -   --- ----
-   -   --- ---------
-   --- -----
--- ------------
--- ----------
--- ------------
  • dist/: 存储打包后生成的文件,分别有 CSS 和 JS。
  • src/js/app/: 存储应用程序的代码,包括主入口文件 main.js、路由 router.js、视图 views/ 和模型 models/
  • src/js/lib/: 存储第三方库和插件。
  • src/js/config.js: RequireJS 配置文件。
  • Gruntfile.js: Grunt.js 的任务配置文件。

依赖库

在项目中我们会用到以下库:

Grunt 配置

Gruntfile.js 中配置任务:

-------------- - --------------- -
  ------------------
    ---- ------------------------------------

    -- -- -- --
    ------- -
      -------- -
        ------- ---- --- -------- -- --- ---------------------------------- -- -----
      --
      ------ -
        ---- ---------------------
        ----- ---------------------
      -
    --

    -- -- ---- --
    ----- -
      ------------ -
        -------- -
          ------ ------------
        --
        ------ -
          ---------------------- ----------------------
        -
      -
    --

    -- -------------
    ------ -
      -------- -
        ------ -------------------
        ------ ----------
      --
      ---- -
        ------ -----------------------
        ------ --------
      -
    -
  ---

  -- -- ----- --
  -------------------------------------------
  -----------------------------------------
  ------------------------------------------

  -- -- ----- ----
  ----------------------------- -----------
--

这里我们定义了三个任务:uglifylesswatch。其中 uglifyless 分别用于压缩 JS 文件和编译 LESS 文件,watch 则是实时监测文件修改并执行相应任务。

RequireJS 配置

src/js/config.js 中配置 RequireJS:

------------------
  -------- -----
  ------ -
    ------- ----------------
  -
---

我们在这里定义了 RequireJS 的基本配置信息,如模块根路径、依赖库的别名等。这里以 jQuery 库为例,指定其路径为 `lib/jquery.min.js

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/25907