Skip to content

Commit

Permalink
feat(packaging): allow packaging of additional files (images, styles,…
Browse files Browse the repository at this point in the history
…...)
  • Loading branch information
tinesoft committed Apr 8, 2018
1 parent 745bd09 commit d1df8dc
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 19 deletions.
4 changes: 4 additions & 0 deletions __tests__/test-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const createNgLibraryApp = (options, prompts) => {
testingFramework: 'karma',
ngVersion: '2.0.0',
ngModules: ['core', 'common'],
additionalPackageFiles: 'styles/*.scss, images/*.(png|jpg)',
useGreenkeeper: true,
useCompodoc: false,
enforceNgGitCommitMsg: true
Expand Down Expand Up @@ -148,6 +149,9 @@ describe('ngx-library:app', () => {
'config/webpack.test.js',
'config/gulp-tasks/README.md'
]);

assert.fileContent('gulpfile.js', ` gulp.src(['README.md', 'LICENSE', 'CHANGELOG.md', 'styles/*.scss', 'images/*.(png|jpg)',`);

});
});
});
Expand Down
7 changes: 5 additions & 2 deletions app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ module.exports = class extends Generator {
this.ngVersion = this.config.get('ngVersion');
this.ngModules = this.config.get('ngModules');
this.otherDependencies = this.config.get('otherDependencies') || [];
this.additionalPackageFiles = this.config.get('additionalPackageFiles') || [];
this.dependenciesRange = this.config.get('dependenciesRange') || '^';
this.useGreenkeeper = this.config.get('useGreenkeeper');
this.useCompodoc = this.config.get('useCompodoc');
Expand All @@ -421,10 +422,11 @@ module.exports = class extends Generator {
this.projectName = props.projectName;
this.projectVersion = props.projectVersion;
this.projectDescription = props.projectDescription;
this.projectKeywords = props.projectKeywords ? props.projectKeywords.split(',') : [];
this.projectKeywords = props.projectKeywords ? props.projectKeywords.split(/, */) : [];
this.ngVersion = props.ngVersion;
this.ngModules = props.ngModules;
this.otherDependencies = props.otherDependencies ? props.otherDependencies.split(',') : [];
this.otherDependencies = props.otherDependencies ? props.otherDependencies.split(/, */) : [];
this.additionalPackageFiles = props.additionalPackageFiles ? props.additionalPackageFiles.split(/, */) : [];
this.ngPrefix = props.ngPrefix;
this.testingFramework = props.testingFramework;
this.useGreenkeeper = props.useGreenkeeper;
Expand Down Expand Up @@ -457,6 +459,7 @@ module.exports = class extends Generator {
this.config.set('ngVersion', this.ngVersion);
this.config.set('ngModules', this.ngModules);
this.config.set('otherDependencies', this.otherDependencies);
this.config.set('additionalPackageFiles', this.additionalPackageFiles);
this.config.set('dependenciesRange', this.dependenciesRange);
this.config.set('ngPrefix', this.ngPrefix);
this.config.set('testingFramework', this.testingFramework);
Expand Down
38 changes: 22 additions & 16 deletions app/prompts.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,58 +27,58 @@ module.exports = info => {
type: 'input',
name: 'authorName',
validate: validators.validateAuthorName,
message: '(1/16) What is your name?',
message: '(1/17) What is your name?',
default: info.git.name
},
{
type: 'input',
name: 'authorEmail',
validate: validators.validateAuthorEmail,
message: '(2/16) What is your email address?',
message: '(2/17) What is your email address?',
default: info.git.email
},
{
type: 'input',
name: 'githubUsername',
validate: validators.validateGithubUsername,
message: '(3/16) What is your Github username?'
message: '(3/17) What is your Github username?'
},
{
type: 'input',
name: 'githubRepoName',
validate: validators.validateGithubRepoName,
message: '(4/16) What is your Github repository name?'
message: '(4/17) What is your Github repository name?'
},
{
type: 'input',
name: 'projectName',
validate: validators.validateProjectName,
message: '(5/16) What is the name of your project?',
message: '(5/17) What is the name of your project?',
default: 'my-ngx-library'
},
{
type: 'input',
name: 'projectVersion',
validate: validators.validateProjectVersion,
message: '(6/16) What is the version of your project?',
message: '(6/17) What is the version of your project?',
default: '0.0.1'
},
{
type: 'input',
name: 'projectDescription',
message: '(7/16) What is the description of your project?',
message: '(7/17) What is the description of your project?',
default: 'Angular library built with ❤ using ngx-library yeoman generator.'
},
{
type: 'input',
name: 'projectKeywords',
message: '(8/16) What keywords best describe your project (comma-separated)?',
message: '(8/17) What keywords best describe your project (comma-separated)?',
default: 'ng,angular,library'
},
{
type: 'list',
name: 'ngVersion',
message: '(9/16) What minimal version of Angular do you want to base your library upon?',
message: '(9/17) What minimal version of Angular do you want to base your library upon?',
choices: [
{name: '2.X.X', value: '2.0.0'},
{name: '4.X.X', value: '4.0.0'},
Expand All @@ -89,26 +89,32 @@ module.exports = info => {
type: 'checkbox',
name: 'ngModules',
validate: validators.validateNgModules,
message: '(10/16) What Angular modules will your library use?',
message: '(10/17) What Angular modules will your library use?',
choices: NG_MODULES
},
{
type: 'input',
name: 'otherDependencies',
message: '(11/16) What other NPM packages your project depends upon? (comma-separated)?',
message: '(11/17) What other NPM packages your project depends upon? (comma-separated)?',
default: ''
},
{
type: 'input',
name: 'additionalPackageFiles',
message: '(12/17) What addtional assets do you want to packages with your library? (comma-separated globs)?',
default: ''
},
{
type: 'input',
name: 'ngPrefix',
validate: validators.validateNgPrefix,
message: '(12/16) What prefix would you like to use to name your components, directives,...?',
message: '(13/17) What prefix would you like to use to name your components, directives,...?',
default: 'my-lib'
},
{
type: 'list',
name: 'testingFramework',
message: '(13/16) What testing framework do you want to use?',
message: '(14/17) What testing framework do you want to use?',
choices: [
{name: 'Karma', value: 'karma'},
{name: 'Jest', value: 'jest'}],
Expand All @@ -117,19 +123,19 @@ module.exports = info => {
{
type: 'confirm',
name: 'useGreenkeeper',
message: '(14/16) Do You want to use Greenkeepeer (to automatically keep your dependencies up-to-date)?',
message: '(15/17) Do You want to use Greenkeepeer (to automatically keep your dependencies up-to-date)?',
default: false
},
{
type: 'confirm',
name: 'useCompodoc',
message: '(15/16) Do You want to use Compodoc (to generate your Angular project documentation)?',
message: '(16/17) Do You want to use Compodoc (to generate your Angular project documentation)?',
default: false
},
{
type: 'confirm',
name: 'enforceNgGitCommitMsg',
message: '(16/16) Do You want to enforce Angular Git Commit Messages Guideline (to autogenerate CHANGELOG.md file)?',
message: '(17/17) Do You want to enforce Angular Git Commit Messages Guideline (to autogenerate CHANGELOG.md file)?',
default: true
}
];
Expand Down
2 changes: 1 addition & 1 deletion app/templates/_gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ gulp.task('npm-package', (cb) => {
// copy the needed additional files in the 'dist' folder
pump(
[
gulp.src(['README.md', 'LICENSE', 'CHANGELOG.md',<% if(ngVersion === '2.0.0'){ %>
gulp.src(['README.md', 'LICENSE', 'CHANGELOG.md', <% for (a of additionalPackageFiles) { %>'<%= a %>', <% } %><% if(ngVersion === '2.0.0'){ %>
`${config.buildDir}/lib-es5/**/*.js`,
`${config.buildDir}/lib-es5/**/*.js.map`,<% } %>
`${config.buildDir}/lib-es5/**/*.d.ts`,
Expand Down

0 comments on commit d1df8dc

Please sign in to comment.