Angular gulp -如何根据每个SRC文件夹拆分dist文件夹中的js文件
angular gulp - how to split js file in dist folder according to each src folder
我正在使用gulp-angular为我的项目,我的问题是,我没有足够的经验与节点和gulp修改默认的脚本任务。
我希望能够生成我的应用程序的每个文件夹,以创建一个优化的js文件,该文件包含此特定文件夹的所有其他js文件,并为每个文件夹重复此过程。像这样的
**build.js **'use strict';
var gulp = require('gulp');
var $ = require('gulp-load-plugins')({
pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
});
module.exports = function(options) {
gulp.task('partials', function () {
return gulp.src([
options.src + '/app/**/*.html',
options.tmp + '/serve/app/**/*.html'
])
.pipe($.minifyHtml({
empty: true,
spare: true,
quotes: true
}))
.pipe($.angularTemplatecache('templateCacheHtml.js', {
module: 'gulpTest',
root: 'app'
}))
.pipe(gulp.dest(options.tmp + '/partials/'));
});
gulp.task('html', ['inject', 'partials'], function () {
var partialsInjectFile = gulp.src(options.tmp + '/partials/templateCacheHtml.js', { read: false });
var partialsInjectOptions = {
starttag: '<!-- inject:partials -->',
ignorePath: options.tmp + '/partials',
addRootSlash: false
};
var htmlFilter = $.filter('*.html');
var jsFilter = $.filter('**/*.js');
var cssFilter = $.filter('**/*.css');
var assets;
return gulp.src(options.tmp + '/serve/*.html')
.pipe($.inject(partialsInjectFile, partialsInjectOptions))
.pipe(assets = $.useref.assets())
.pipe($.rev())
.pipe(jsFilter)
.pipe($.ngAnnotate())
.pipe($.uglify({ preserveComments: $.uglifySaveLicense })).on('error', options.errorHandler('Uglify'))
.pipe(jsFilter.restore())
.pipe(cssFilter)
.pipe($.csso())
.pipe(cssFilter.restore())
.pipe(assets.restore())
.pipe($.useref())
.pipe($.revReplace())
.pipe(htmlFilter)
.pipe($.minifyHtml({
empty: true,
spare: true,
quotes: true,
conditionals: true
}))
.pipe(htmlFilter.restore())
.pipe(gulp.dest(options.dist + '/'))
.pipe($.size({ title: options.dist + '/', showFiles: true }));
});
// Only applies for fonts from bower dependencies
// Custom fonts are handled by the "other" task
gulp.task('fonts', function () {
return gulp.src($.mainBowerFiles())
.pipe($.filter('**/*.{eot,svg,ttf,woff,woff2}'))
.pipe($.flatten())
.pipe(gulp.dest(options.dist + '/fonts/'));
});
gulp.task('other', function () {
return gulp.src([
options.src + '/**/*',
'!' + options.src + '/**/*.{html,css,js}'
])
.pipe(gulp.dest(options.dist + '/'));
});
gulp.task('clean', function (done) {
$.del([options.dist + '/', options.tmp + '/'], done);
});
gulp.task('build', ['html', 'fonts', 'other']);
};
一旦我们运行cmd:
gulp build
所有的html, css, js等…文件被缩小、美化、连接等。然后放入dist文件夹,结构如下:
── dist/
│ │ ├── styles/
│ │ │ │ ├── app-e4a4643d.css
│ │ │ │ └── vendor-2183d05f.css
│ │ ├── scripts/
│ │ │ ├── app-078d1fc3.js
│ │ │ ├── vendor-b58797da.js
│ ├── 404.html
│ ├── favico.ico
│ └── index.html
另外,我不明白优化后的文件名是如何生成的。
所以回顾一下,我想在dist/scripts文件夹中放入一定量的javascript文件,等于应用程序中现有视图的数量,并按我的意愿重新命名它们…
有没有人能告诉我该怎么做?
从简单的开始,首先把两个css文件放在一起,一步一步地学习它是如何工作的
-
创建一个gulp任务并命名为"css"
饮而尽。任务(css,函数(){//代码会在这里})
-
创建要连接的文件数组,使用
中的所有文件*.filetype
包含目录gulp.src([‘filename1’,‘filename2’,‘每个/css/文件/这/dir/* . css)
-
连接结果,这将从连接和编译的资源
在公共目录中创建一个main.css文件。.pipe (concat (main.css)).pipe (gulp.dest('公共/css/'));
-
现在终端运行
gulp css
-
饮而尽。任务('css',函数(){gulp.src (["。/bower_components/angular-material/angular-material.css’,"。/资产/css/* . css"]).pipe (concat (main.css)).pipe (gulp.dest('公共/css/'));});
最后但并非最不重要的是如果你想尝试一点挑战,尝试编译sass,我使用node-bourbon
看一下Angular和Gulp开发的项目模板angularcoffee-boilerplate中的gulpfile.js。
使用以下命令将.js和.coffee文件连接到一个文件中:
var obj = gulp.src(['script1.coffee','script2.coffee')
.pipe(sourcemaps.init())
.pipe(coffee({ bare: false, header: false }))
.pipe(addsrc(['script1.js','script2.js'));
if (options.minify)
obj = obj.pipe(uglify());
return obj
.pipe(concat('all.min.js'))
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest(destinationpaths.js))
.on('error', function (error) {
console.error('' + error);
})
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 展开和折叠文件夹
- 在ng重复循环中显示来自不同文件夹的图像
- 如何将所有JS文件连接到一个文件夹中
- 是否可以用JavaScript显示等效的文件夹对话框
- grunt上的压缩文件夹不起作用
- Grunt:Grunt命令后未创建Dist文件夹
- 将bower配置为只安装dist文件夹
- dist/文件夹中的JS文件和root中的JS文件有什么区别
- 如何从“;dist”;文件夹中删除原型;src”;
- Grunt-插件文件夹在构建dist后被破坏
- Ember构建输出(dist文件夹)
- 有没有办法复制所有的脚本从底层组件到dist/script文件夹在grunt没有缩小
- Gulp:准备dist文件夹并编辑ini文件
- Grunt Dist文件夹相对路径错误
- src和dist文件夹在NPM包中的作用
- src和dist文件夹的作用是什么?
- 执行时不创建 dist 文件夹的咕噜声任务
- Angular gulp -如何根据每个SRC文件夹拆分dist文件夹中的js文件