当前位置: 首页 > 面试题库 >

如何配置Grunt以缩小版本替换Bower依赖项

别永年
2023-03-14
问题内容

我是Yeoman / Grunt / Bower的新手。我有一个bower.json定义以下依赖项的文件:

bower.json

{
    "dependencies": {
        "angular": "~1.0.7",
        "jquery": "~1.8.0",
        "bootstrap": "~2.3.2",
        "angular-grid": "~2.0.5"
    }
}

在我的html文件中,我使用的是这些库的非精简版本,这些版本是通过命令安装的 bower install

index.html

<script src="components/jquery/jquery.js"></script>
<script src="components/bootstrap/docs/assets/js/bootstrap.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/angular-grid/build/ng-grid.js"></script>

如何配置grunt,因此它将:

  1. 仅将这些js文件的缩小版本复制到构建目录
  2. 替换HTML所以它会如变更jquery.jsjquery.min.js
  3. 不使用CDN时-是否建议将所有文件与自定义应用程序脚本结合在一起?

这里正确的方法是什么?我必须在grunt复制任务中定义每个库吗?喜欢:

Gruntfile.js:

copy: {
  dist: {
    files: [{
      src: [
        'components/jquery/jquery.min.js',
        'components/bootstrap/docs/assets/js/bootstrap.min.js',
        'components/angular/angular.min.js',
        'components/angular-grid/build/ng-grid.min.js'
      ]
    }]
  }
}

问题答案:

您使用的JavaScript库的精简版最终将​​不会随Bower模块一起提供。最小化和串联不是包管理器负责的事情,而是构建管道。

对于Yeoman,推荐的方法是使用grunt-
usemin
,它将处理所有必要的步骤。在使用搭建新应用yo webapp并查看生成的Gruntfile.js和时,您可以看到一个示例index.html

对于您的情况,您需要在脚本周围添加注释,包括:

<!-- build:js scripts/main.js -->
<script src="components/jquery/jquery.js"></script>
<script src="components/bootstrap/docs/assets/js/bootstrap.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/angular-grid/build/ng-grid.js"></script>
<!-- endbuild -->

并确保在Grunt管道中具有相应的usemin任务:

useminPrepare: {
    options: {
        dest: 'dist'
    },
    html: 'app/index.html'
},
usemin: {
    options: {
        dirs: ['dist']
    },
    html: ['dist/{,*/}*.html'],
    css: ['dist/styles/{,*/}*.css']
},


 类似资料:
  • 假设我有一个pom。包含如下父依赖项的xml: 有没有一种方法可以通过编程(可能是通过脚本)替换版本? 我的用例: 我有很多pom。需要更改父版本的xml文件 例如,我可以执行以下操作,但这将更新pom.xml中所有出现的,并且我希望将其限制为仅具有版本: 根据git xargs文档,我可以使用任何类型的脚本来处理pom。xml、bash、python、ruby等:https://github.c

  • 我得到以下错误在我的Spring启动gradle多模块项目。 根本原因是< code > spring-boot-starter-data-JPA 过渡依赖于3.24.0-GA,而< code > spring-boot-starter-thyme leaf 过渡依赖于3.20.0-GA。我使用的是Gradle Java平台Pulgin,而不是Spring Boot Gradle插件。 问题: 如

  • Semantic Versioning Packages in Yarn follow Semantic Versioning, also known as “semver”. When you install a new package from the registry it will be added to your package.json with a semver version ra

  • Package dependencies are critical to the success of a package. When you develop the functionality of your package, you will very likely use existing code defined in other packages. Those packages then

  • 我用我的真实情况来说明问题。 我使用logback 1.0.1进行日志记录,它包含SLF4J 1.6.4作为依赖项。我还为遗留日志API(Java . util . logging、log4j和commons-logging)使用SLF4J API桥,它们不是显式的依赖关系。这些也必须(最好)是版本1.6.4。 为了使我的pom.xml尽可能整洁和无错误,我想强制这些API桥接器与SLF4J版本相

  • 随着我的Web项目越来越复杂,我意识到手动下载外部JavaScript库容易出错,耗时,并且随着时间的推移,项目的可维护性降低。 虽然Visual Studio有Nuget包管理器,但它不如bowers强大。也不是所有的外部库都在Nuget上发布。 但是对于如何使用VisualStudio配置bower没有明确的帮助。请帮忙!