<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        nodejs怎么實現gulp打包功能

        來源:懂視網 責編:小采 時間:2020-11-27 19:55:03
        文檔

        nodejs怎么實現gulp打包功能

        nodejs怎么實現gulp打包功能:這次給大家帶來nodejs怎么實現gulp打包功能,nodejs實現gulp打包功能的注意事項有哪些,下面就是實戰案例,一起來看一下。最近換了家新公司,由于是創業公司,項目基本從零開始搭建。工作幾年,也沒想過寫點什么技術性的東西,今天突然心血來潮,哦當然,我這
        推薦度:
        導讀nodejs怎么實現gulp打包功能:這次給大家帶來nodejs怎么實現gulp打包功能,nodejs實現gulp打包功能的注意事項有哪些,下面就是實戰案例,一起來看一下。最近換了家新公司,由于是創業公司,項目基本從零開始搭建。工作幾年,也沒想過寫點什么技術性的東西,今天突然心血來潮,哦當然,我這

        這次給大家帶來nodejs怎么實現gulp打包功能,nodejs實現gulp打包功能的注意事項有哪些,下面就是實戰案例,一起來看一下。

        最近換了家新公司,由于是創業公司,項目基本從零開始搭建。工作幾年,也沒想過寫點什么技術性的東西,今天突然心血來潮,哦當然,我這個人總是特別容易心血來潮,不定想干點啥,不說廢話了,畢竟上班呢,開小差也不太好。忙了一個月,項目初見雛形,也基本可以1.0上線了,趁著等文案的時間,簡單寫點gulp打包的東西,等明兒有空再來一篇詳細的,再有空再來個webpack的,哎呀,這個有空也不知道是啥時候,莫怪,好像又廢話了幾句。stop,stop。

        從頭兒來吧,首先創建一個package.json文件,就npm init一直確認確認確認就好了,構建過程中用到什么就npm什么就好了。做過vue腳手架的小伙伴兒應該知道,腳手架會自動生成一個特別全面的package.json文件,當然我們目前也用不到那么多。不多說了。

        為了萬一以后添加強大的功能,我們就多做幾個文件,就不是僅僅一個gulpfile.js了,當然一個也沒問題。

        來創建一個gulpfile.config.js來專門放置文件路徑引用輸出等。就是所謂的src,dist。再來一個gulpfile.xxx.js,名字隨便起吧,引用的時候引用對就好了。再來一個gulpfile.js吧,最后要運行啊。

        做個最簡單例子,以js壓縮為例,稍后加上版本哈管理功能,用法都差不多,用什么加什么。

        var src_file = './xxxx/'; // 你的源文件目錄
        var dist_file= './dist/xxxx/'; // 文件處理后你想存放的目錄
        var config= {
        src: src_file,
        dist: dist_file,
        js: {
         src: src_file + 'src/js/**/*.js', // 你的js目錄
         dist: dist_file + 'src/js', // js文件打包后存放的目錄
         },
        };
        module.exports = config;

        這只是個最簡單的小例子,要是有其它的往里加就好了,html,css,img,還有一些靜態文件等。

        關鍵的來了,我們把處理方法寫在gulpfile.xxx.js里面。

        gulpfile.xxx.js:

        var gulp = require('gulp');
        var rename = require('gulp-rename'); //重命名
        var babel = require("gulp-babel");
        var uglify = require('gulp-uglify'); //js壓縮
        var config = require('./gulpfile.config.js');
        var runSequence = require('run-sequence');
        var rev = require('gulp-rev');//版本號管理的一些東西,先寫進來吧,懶的在敲了
        var revCollector = require('gulp-rev-collector');
        var cssUrl = './dist/xxx/src/css/*.css',
         jsUrl = './dist/xxx/src/js/*.js';
        function haha() {
         gulp.task('js', function () {
         return gulp.src(Config.js.src)
         .pipe(babel())
         .pipe(uglify())
         .pipe(gulp.dest(config.js.dist));
         });
         gulp.task('revJs', function(){
         return gulp.src(jsUrl)
         .pipe(rev())
         .pipe(rev.manifest())
         .pipe(gulp.dest('dist/xxx/src/js'));
         });
         gulp.task('revHtml', function () {
         return gulp.src(['dist/xxx/src/js/**/*.json', 'chaohuo/*.html']) /*后面本地html文件的路徑,可自行配置*/
         .pipe(revCollector(
         { replaceReved:true }
         ))
         .pipe(gulp.dest('dist/chaohuo')); /*Html更換css、js文件版本,和本地html文件的路徑一致*/
         });
         gulp.task('dev', function (done) {
         condition = false;
         runSequence(
         ['revJs'],
         ['revHtml'],
         done);});
         gulp.task('default', ['js','dev']);
        }
        module.exports = haha;

        天啊,我本來想一步步來寫清楚點的,沒想到一下子把版本號相關的也都寫進去了,那就算了吧,一起來吧。

        下面是gulpfile.js文件:

        var haha= require('./gulpfile.prod.js');
        haha();

        基本工作已經完成一大半了,還有一個忘記說了。如果你用到了es6語法,千萬別忘記配置一個.babelrc文件.

        .babelrc內容:

         "presets": [
         "es2015",
         ],
         "plugins": [
         "transform-remove-strict-mode"//這個插件就是添加版本號的關鍵。
         ]
        }

        有的小伙伴可能會遇到版本號不斷疊加的問題,還記得{ replaceReved:true }這個嗎,前面有看一下,記得添加這個。還有最后一步node_modules我們要更改一些代碼,來吧,我下的最新的包(如果你用的老的,也是差不多的改法),替換下。

        gulp-path里的index.js兩個return的東西都改掉:

        return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`);改為return modifyFilename(pth, (filename, ext) => `${filename}${ext}`);
        return modifyFilename(pth, (filename, ext) => filename.replace(new RegExp(`-${hash}$`), '') + ext);改為return modifyFilename(pth, (filename, ext) => filename + ext);

        gulp-rev-collector里的index.js:

        大概128行左右

        patterns.push( escPathPattern( (path.dirname(key) === '.' ? '' : closeDirBySep(path.dirname(key)) ) )
        + path.basename(key, path.extname(key))
        .split('.')
        .map(function(part){
        return escPathPattern(part) + '(' + opts.revSuffix + ')?';
        })
        .join('\\.')
        + patternExt
        );

        這段改為

        patterns.push( escPathPattern( (path.dirname(key) === '.' ? '' : closeDirBySep(path.dirname(key)) ) + path.basename(key, path.extname(key)) ) + opts.revSuffix + escPathPattern( path.extname(key) ) + "(\\?v=(\\d|[a-z]){8,10})*" );

        這里相關的也是網上查了很多相關的資料,不過好像都是一些老版本,并且gulp-rev里的文件不用修改,這里也經過多次測試,以上基本可用。

        好了,離成功不遠了,cmd運行下gulp命令,ok,基本完成,可以去查看下啦!

        注意:所有require的東西記得npm安裝哦,卡的話就cnpm,不多說。

        還有由于很多東西都是手打的,可能會有部分拼寫呀,文件路徑的錯誤,記得檢查更改哦。

        相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

        推薦閱讀:

        JS的JSON數據分組怎樣優化

        vue+init失敗怎么處理

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        nodejs怎么實現gulp打包功能

        nodejs怎么實現gulp打包功能:這次給大家帶來nodejs怎么實現gulp打包功能,nodejs實現gulp打包功能的注意事項有哪些,下面就是實戰案例,一起來看一下。最近換了家新公司,由于是創業公司,項目基本從零開始搭建。工作幾年,也沒想過寫點什么技術性的東西,今天突然心血來潮,哦當然,我這
        推薦度:
        標簽: 打包 gu Nodejs
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产麻豆成人传媒免费观看| 精品亚洲成A人在线观看青青| a毛片免费在线观看| 国产亚洲精品成人AA片新蒲金| 黄床大片30分钟免费看| 深夜国产福利99亚洲视频| 国产av无码专区亚洲av毛片搜| 日本高清免费网站| 男女污污污超污视频免费在线看| 亚洲av日韩片在线观看| eeuss影院ss奇兵免费com| 亚洲va国产va天堂va久久| 国产精品区免费视频| 亚洲国产综合自在线另类| 国产在线观看片a免费观看| 亚洲欧洲精品成人久久曰| 免费在线观看污网站| 国产精品免费一区二区三区 | 日本最新免费不卡二区在线| 亚洲AV日韩AV无码污污网站| 亚洲国产黄在线观看| 免费高清国产视频| 亚洲一区在线免费观看| 国产精品免费一级在线观看| 成人网站免费大全日韩国产| 亚洲美女一区二区三区| 日本v片免费一区二区三区| CAOPORN国产精品免费视频| 精品日韩亚洲AV无码| 成人免费无毒在线观看网站| 一级特黄a免费大片| 亚洲的天堂av无码| 免费一级毛片在播放视频| 免费日本一区二区| 亚洲国产成人AV在线播放| 亚洲精品无码午夜福利中文字幕| 99视频全部免费精品全部四虎| 男男gvh肉在线观看免费| 久久丫精品国产亚洲av不卡| 免费观看四虎精品国产永久| 99爱免费观看视频在线|