【问题标题】:How to concatenate angularjs files using grunt如何使用 grunt 连接 angularjs 文件
【发布时间】:2014-10-09 19:40:59
【问题描述】:

我有一个 angularjs 应用程序。 我想将所有 angularjs 文件连接到单个文件。 我正在使用 grunt 并搜索有关连接 grunt 插件的信息。 我发现有 grunt-contrib-concat 和 grunt-concat-in-order 插件。

但是,我无法通过示例找到有关如何将文件与依赖项连接起来的答案。 如果我使用 grunt-concat-in-order 插件,请告诉我如何指定依赖项。

注意:在 grunt-concat-in-order 文档中,它说要指定 framework.require("moduleA")。但不确定是什么框架。有没有什么有效的方法可以在单个文件中指定依赖?

提前致谢, 拉贾古鲁

【问题讨论】:

  • 如果你把所有的东西都正确地放入了 Angular 模块中,你可以按任何顺序包含文件,只要模块声明在前。

标签: node.js angularjs gruntjs concatenation


【解决方案1】:

我不知道您在 grunt 中的选项 - 但 Angular.js 代码取决于用于声明其控制器、工厂等的函数的特定参数名称。

即当你声明一个控制器时 myModule.controler(function ($scope) {...}) - $scope 必须有 actual 变量名 - 一个不知道这一点的 javascript minifier 工具会将变量名更改为更短的变量名,并且它将无法被 angular 识别。

因此,除非您能找到一些特定的 grunt 选项来避免更改函数和参数名称(以及 lilely 变量),否则您不能将其应用于 angular.js 项目。 Gulpjs 可以选择将他的 javascript 文件连接在一起,而不需要名称修改,从而避免了这个问题。

【讨论】:

  • 您好,我认为 ngmin 对解决您提到的问题很有用。
【解决方案2】:

根据grunt-contrib-concat,它会按顺序连接文件 https://github.com/gruntjs/grunt-contrib-concat#usage-examples

但是我建议你使用grunt-usemin 来完成这项工作,它与grunt-wiredep 配合得很好 (你需要使用 bower,它可以解决你的依赖问题)

为了简短起见,我建议您查看generator-angulargenerator-angular-fullstack 以查看他们使用的插件。

致@jsbueno,你没有回答这个问题。但是你想要的是ng-annotate

【讨论】:

    【解决方案3】:

    你可以考虑这个解决方案

    1. 将模块声明分隔为xxx.module.js

    2. 在 grunt-contrib-concat 中修改配置如下:

      将其放在 grunt.initConfig

      之外

    var clientApp = './app/';


    grunt-contrib-concat 配置

    dist: {// grab module first, state the second
        src: [
            clientApp+'**/*.module.js',
            clientApp+'**/*.state.js',
            clientApp+'**/*.js'
            ],
        dest: 'dist/<%= pkg.name %>.js'
    }
    

    我使用状态,所以我必须在尝试导航到任何状态之前定义状态。这是预览我的代码,模块声明首先声明,然后是我的状态。即使缩小也不会产生任何问题。

    希望对您有所帮助。 我遵循这个 johnpapa 的风格guide,如果我的解决方案不起作用,您的问题可能会在那里解决

    【讨论】:

    • 这是我正在寻找的确切解决方案。正如你提到的,还找到了here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2014-02-04
    相关资源
    最近更新 更多