繁体   English   中英

使用VS 2015 / gulp对js文件进行版本控制

[英]Using VS 2015/gulp for versioning js files

我正在使用VS 2015,ASP.NET 5(MVC 6)和Gulp编写带有angularjs和补充模块的SPA 我的目标框架是dnx451。 我已经阅读了一些最佳实践,这些最佳实践指出,来自Index的响应应具有严格的无缓存策略集,并且所有其他资源(例如js,css,img)都应被大量缓存。 这样,浏览器将始终下载轻量级页面并缓存脚本。 发布时, 我试图做一个吞咽任务,合并/丑化我的所有JS文件并输出一个app.min。{version} .js (同样适用于-ss- > css文件)。 这提供了始终下载最新文件版本的优点,但是可以在最新和最大版本时将它们保留在缓存中。

有没有办法从gulp任务中获取版本(从project.json)和构建(从project.json的*部分)? 我正在寻找一种方法来使名称的文件{version}部分与网站的版本/版本匹配。

我已经看到了在gulp中针对VS环境变量在gulp中使用process.env示例,但是很难将各个部分组合在一起以实现所需的Version.Build格式。

我努力了:

var project = require('./project.json');
gulp.task('js-publish', function(){
  project.version;  //this give 1.0.0-* (makes sense since its a string)
});

gulp.task('js-publish', function(){
  process.env.BUILD_VERSION; //which is undefined
});

您想使用gulp-rename NPM软件包来重命名该文件。 将gulp-rename添加到您的package.json文件。 这是如何在您的gulpfile.js中使用它的示例:

var rename = require("gulp-rename");

// rename via string 
gulp.src("./src/main/text/hello.txt")
  .pipe(rename("main/text/ciao/goodbye.md"))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/goodbye.md 

// rename via function 
gulp.src("./src/**/hello.txt")
  .pipe(rename(function (path) {
    path.dirname += "/ciao";
    path.basename += "-goodbye";
    path.extname = ".md"
  }))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md 

// rename via hash 
gulp.src("./src/main/text/hello.txt", { base: process.cwd() })
  .pipe(rename({
    dirname: "main/text/ciao",
    basename: "aloha",
    prefix: "bonjour-",
    suffix: "-hola",
    extname: ".md"
  }))
  .pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/bonjour-aloha-hola.md

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM