使用 gruntjs 组合并缩小所有 Bower 库

2023-12-29

有没有办法自动将所有 Bower 安装的库合并并缩小为 1 个文件?

首先我尝试了最基本的方法:将所有.js所有子目录中的文件:

uglify: {
    options: {compress: true},
    my_target: { files: {
        'vendor.js': ['bower_components/**/*.js'],
}   }   }

但这显然是一个糟糕的做法。由于错误太多,它也不起作用。

我手动删除了所有文件,只保留每个库拥有的 1 个(主)文件,并且它有效。

有没有办法自动完成这一切?

另外,建议这样做吗? (即将所有供应商库合并到 1 个文件中)


我推荐 2 个不错的 grunt 库的组合:Wiredep 和 Usemin:

Wiredep:自动加载 html 中 Bower.json 中标识的 Bower 的所有依赖项

Usemin:检测两个注释标签内的所有 src,所有源代码都被缩小并连接在 dist 文件夹中,下面是使用此包的 grunt 文件的一个小示例,基于 Angular to yeoman 的生成器,这只是其中的一个简介咕噜声

Grunt

    wiredep: {
        options: {
            cwd: 'appFolder'
        },
        app: {
            src: ['htmlCollections'],
            ignorePath:  /\.\.\//
        }
    },

    useminPrepare: {
        html: 'htmlCollections',
        options: {
            dest: 'distributionFolder',
            flow: {
                html: {
                    steps: {
                        js: ['concat', 'uglifyjs'],
                        css: ['cssmin']
                    },
                    post: {}
                }
            }
        }
    },

  usemin: {
        html: ['distributionFolder+HtmlFiles'],
        css: ['distributionFolder+cssFiles'],
        js: ['distributionFolder+javascriptFiles']
  }

HTML

<!doctype html>
<html lang="en" ng-app="MobileDev" id="ng-app">
<head>
    <!-- build:css(app) styles/vendor.css -->
    <!-- bower:css -->
            //This gonna be generated for the grunt by dependencies in bower
    <!-- endbower -->
    <!-- endbuild -->

    <!-- build:css(.tmp) styles/main.css -->
        //All the script inside this gonna be concatened and minified in 
        //the dist folder by the name of main.css
        <link type="text/css" rel="stylesheet" href="styles/app.css"/>
    <!-- endbuild -->
</head>

<body>
    <!-- build:js(app) scripts/vendor.js -->
    <!-- bower:js -->
        //This gonna be generated for the grunt by dependencies in bower
        //And in distribution all bower components added gonna be minified by usemin in
        //vendor.js
    <!-- endbower -->
    <!-- endbuild -->

    <!-- build:js({.tmp,app}) scripts/scripts.js -->
        //All the script inside this gonna be concatened and minified in the dist 
        //folder by the name of scripts.js
        <script type="text/javascript" src="scripts/numero1"></script>
        <script type="text/javascript" src="scripts/numero2"></script>
    <!-- endbuild -->

</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gruntjs 组合并缩小所有 Bower 库 的相关文章

  • 如何将外部 JavaScript 与 Shopify 网站结合起来

    我已经使用 Pingdom 测试了我的网站 并建议结合外部 javascript 但我不知道如何使用 shopify 网站来做到这一点 为 Shopify 主题添加外部脚本文件非常简单 您只需将脚本文件上传到主题文件的 asset 文件夹中
  • 从 LESS 获得缩小的 CSS 输出的最佳方法是什么?

    是否有可能自动从 LESS 获取缩小编译后的 CSS 每次我改变一些东西 我都必须手动压缩它 我使用 less js 来编译 LESS Thanks lessc styles less x压缩命令已被弃用 你必须使用这个命令 lessc c
  • 为什么 JavaScript 压缩器用双引号替换单引号?

    制作一些 Bookmarklet 我尝试使用 JavaScript minifier 例如谷歌闭包编译器 http closure compiler appspot com home or YUI压缩器 http www refresh s
  • GruntJs 'grunt' cmd 打开 Visual Studio?

    我已经能够使用GruntJs https github com cowboy grunt在几个零问题的个人项目上 我决定在我的工作项目中使用它 I run grunt init gruntfile这样就可以创建 gruntfile 和 pa
  • 根据grunt任务设置Env变量

    我有一个 web 应用程序 emberjs 我需要根据 grunt 任务设置环境变量 所以当我跑步时grunt server它会选择development 并且 url 将被设置为localhost 5000 但当我这样做时grunt bu
  • 由于 lambda 表达式,缩小失败

    当 ASP NET 捆绑程序尝试缩小以下脚本时 它会失败 Minification failed Returning unminified contents 164 59 60 run time error JS1195 Expected
  • Flask 的 jsonify() 中缩小的 JSON

    Flask 提供了方便的jsonify 函数 它从 Python 变量返回 JSON 对象 from flask import Flask jsonify app Flask name app route def json hello re
  • 如何卸载所有 Bower 软件包?

    有时 重建整个站点并强制 Bower 重新安装 Bower json 中所有软件包的新版本很有用 但是 似乎没有任何方法可以做到这一点 尝试 1 bower uninstall bower not installed 0 不 这只能在逐个包
  • 使用 r.js 打包使用“文本”加载视图的 SPA 应用程序

    我正在尝试使用 grunt 将 SPA 应用程序 requirejs durandal 2 knockout 构建到单个 main build js 文件中 并且我遇到了 durandal 用于加载我的 文本 插件的严重问题意见 在开发中
  • npm 错误!代码 EPEERINVALID

    我是新来的 我得到一个 npm 错误 代码 EPEERINVALID 详细信息如下 我目前正在运行以下内容 nvm 0 32 1 npm 2 15 9 节点 v4 5 0 grunt cli v1 2 0 咕噜 v0 4 5 而且 在进行软
  • grunt-wiredep 对具有不同依赖关系的多个文件

    目前的项目结构有点像这样 index html bower json bower components 建议的项目结构将在项目根目录中添加更多静态 html 文件 到目前为止 我一直在管理 Bower json 中的所有前端依赖项 并使用
  • 如何在不缩小的情况下构建 React 的生产版本?

    背景 我或多或少都在关注使用 React 设置本地开发环境的官方指南 https reactjs org tutorial tutorial html setup option 2 local development environment
  • 为什么 Yeoman 构建时没有字形图标?

    我正在研究一个webapp发电机及运行后grunt我有一个可以正确显示字体的功能应用程序 然而 当我检查dist 目录我没有得到任何字体文件 文档指出grunt命令build the application for deployment 但
  • Vagrant 提供,无法启动 grunt

    我正在尝试让 vagrant 安装 nodejs 正常运行所需的所有内容 然后在节点项目的根文件夹上执行 nohup grunt server 之后 我期望服务器在端口 3030 上侦听 但事实并非如此 如果在配置后我这样做 流浪者 ssh
  • grunt:如何生成 HTML 形式的 jshint 输出

    我正在尝试使用 grunt 运行 jshint 这可行 但现在我希望输出为 HTML 这是我的 grunt 文件 module exports function grunt Project configuration grunt initC
  • 为什么要检查 Bower 组件?

    鲍尔文档说 注意 如果您没有编写供其他人使用的包 例如 您正在构建 Web 应用程序 则应始终将已安装的包签入源代码管理 有谁能很好地回答为什么吗 如果我正在制作一个网络应用程序 我不希望我的存储库因库 X 版本的更新而混乱 我只想更新 B
  • 无法启动 Angular-phonecat,安装后脚本失败[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我目前正在设置一个 vagrant box 来开始开发实验性的 node js angularjs 应用程序 由于我刚刚开始使用
  • 适用于多应用项目的 Grunt 和 requirejs 优化器

    我在让 Grunt 对具有以下结构的项目执行 requirejs 优化时遇到问题 static js apps app js dash js news js many more app files build collections lib
  • 列出 grunt.js 任务

    我正在尝试弄清楚如何打印所有可用的 grunt 任务的列表 如果使用耙子 则为 rake T grunt 相当于什么 例如 grunt T concat jasmine minify grunt help列出可用的任务
  • Typescript 中的 Angular 服务具有依赖注入和缩小功能

    我现在正在努力让我的头脑围绕 Angularjs 我目前正在寻找服务 我也使用打字稿来编写代码 现在 从网络上的示例中 我看到人们在打字稿中使用如下所示的服务 class Service constructor private http n

随机推荐