Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了coffeescript – 与Grunt连接和缩小RequireJS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用CoffeeScript编写的项目,它使用AngularJs.我的供应商依赖是使用Bower安装的,我的文件结构如下:

- assets
 - js
  - app
   - model
    - *.coffee
   - factory
    - *.coffee
   ...
   - app.coffee
   - config.coffee
   - routes.cofeee
  - vendor
   - angular
   - lodash
   ...
  - dist

我想要做的是以下内容

>我正在尝试弄清楚如何使用requireJS的r.js来优化我的应用程序文件,这样我基本上得到一个所有顺序好的连接文件(所以供应商依赖,我的配置和路由,以及他们我的应用程序文件).
>将其整合到我的Grunt文件中.

我尝试过使用r.js优化器,但也许我太傻了,因为它似乎只是将我的应用程序文件(减去供应商的依赖性)复制到dist文件夹中;但是,它确实优化了咖啡生成的js文件.

有没有人有这方面的经验?

解决方法

我想通了:r.js通过读取你的mainConfigFile以及你在配置中命名的所有模块来工作,这里重要的注意事项是r.js只查看命名模块中的第一个require / define并寻找它们;所以,例如,我有一个名为app的命名模块:

require ['config'],(cfg) ->
  require ['angular'],(A) ->
    A.module cfg.ngApp,[]

    require ['routes'],() ->
      require [
        'factory/a-factory','service/a-service','controller/a-controller'
      ],() ->
        A.bootstrap document,[cfg.ngApp]

这里的问题是r.js从未超过第一个require语句,因此连接不起作用.当我把它更改为时,说(我的app.coffeE)

require ['config'],[]

    require ['bootstrap'],(bootstrap) ->
      bootstrap()

还有我的bootstrap.coffee:

define [
  'config','angular','routes','factory/a-factory','controller/a-controller'
],(cfg,A,routes) ->
  class Bootstrap
    constructor: () ->
      routes()

      A.bootstrap document,[cfg.ngApp]

这意味着我只需要在我的r.js配置中定义angular和bootstrap作为包含,然后r.js将完成剩下的工作,如下所示:

baseUrl: 'assets/js/app',mainConfigFile: 'assets/js/app/config.js',name: 'app',include: [
  '../vendor/requirejs/require','bootstrap'
],out: 'assets/js/dist/app.js'

现在一切正常! ~~很遗憾,我必须告诉r.js包含requirejs,也许我在那里做了些傻事?~~

Blimey,我真是个dingus!

所以在我的HTML中我加载了我的连接脚本:

<script src="assets/js/dist/app.js"></script>

什么时候应该像这样加载:

<script src="assets/js/vendor/requirejs/require.js" data-main="assets/js/dist/app"></script>

D’哦!

大佬总结

以上是大佬教程为你收集整理的coffeescript – 与Grunt连接和缩小RequireJS全部内容,希望文章能够帮你解决coffeescript – 与Grunt连接和缩小RequireJS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。