Releases: gonzofish/angular-librarian
First Edition
🎉 🎉 🎉 Version 1.0.0 is officially here! 🎉 🎉 🎉
If you have an issues migrating, please add an issue!
Since the last release a lot has been done:
- Now using Angular v5 & Webpack v3!
- The
np
library has been removed from local projects (please see the migration guide for details) - Fixed a bug in the
rollup.js
, which would fail builds - Fast builds: call
ngl pub
with--no-cleanup
or--yolo
(⚠️ at your own risk!) - Simplified the globals for Rollup--now you may not even need a custom configuration for Rollup!
- Fixes to
tslint.json
courtesy of @tommueller - Removed
typings
frompackage.json
- You can now set a project-wide prefix, thanks to @jensbodal
- Calling
ngl up
will now runnpm install
&npm upgrade
to get libraries up-to-date for you - Fixes to how
ngc
works with Angular 5 from @litzebauer - A big upgrade to Rollup by @WouterSpaak
Thanks to everyone who contributed to the project so far, either by code contributions or discussions!
Glossary
If you have an issues migrating, please add an issue!
- Rollup CommonJS this is necessary for working with RxJS, additionally, a
commonjs
attribute is now usable from custom Rollup configs (see README) - Version consistency an issue in some earlier releases was that the
package.json
template Librarian version didn't match the version of installed version, this is fixed. It also supports using a URL, if you're so inclined to work off of one of the branches--performingngl up
will keep pointing to the URL you specified and update to the latest from that branch - Migration documentation documents detailing how to migrate between versions (if necessary)
- Version badge now you can tell what the latest release is from the README
Bad Proofreading
The build from this morning had a couple bugs in the upgrade process, also updated the README
Footnotes
This is hopefully the last (or one of the last) pre-releases before the full-fledged version 1 release.
What's changed?
- Better Publishing To keep inline with the Angular Package Format, the build process outputs the APF of your code to
dist
. We are usingnp
to do "smart" publishing, but are now passing a--no-publish
flag so we get the benefits ofnp
but can do annpm publish dist
to publish the APF version of your code. - Scoped Package Support If you have a package that you want to publish under an NPM organization, you can do that now (i.e.,
@myscope/my-package
)! - Examples Scaffolding If you need to scaffold out a component, service, directive, or pipe to use with your examples page, just add
--examples
or-x
when running the command (i.e.,ngl c hello-ewe -x
orngl c -x
) - Colors! Now as scaffolding happens, the outputs will be more colorful
- Tests, tests, tests Angular Librarian is unit tested, including the scaffolded files for components, services, etc.
- Badges? We don't need no stink-- Wait, yes we do. The README now comes with badges for CI status (via Semaphore) and code coverage (via Codecov.io)
Collation
Shorthand
Released beta 7 a bit premature!
It didn't include the updates for peerDependencies
and had some issues with overwriting values in package.json
. This should take care of that. Sorry!
Follow the the previous release notes for more!
Type Setting
Changes
This is an important update for the following reasons:
- The
package.json
was incorrectly assigning the typings for published libraries. The attribute and value were both wrong. We've changedtypes
totypings
and the value from./index.d.ts
to./[ library name].d.ts
. This means for a library with a name ofsuper-cool-lib
, the"typings"
value would be./super-cool-lib.d.ts
- The upgrade script had a bug that would always cause it to think Angular Librarian wasn't installed.
- We've moved
dependencies
topeerDependencies
Migration
For migration, in package.json
, you can:
- Make sure that your library's
version
hasn't been overwritten--this is happening in some cases. - Remove
types
- Remove
jsnext:main
(if it is there) - Copy any
dependencies
not inpeerDependencies
topeerDependencies
and then removedependencies
.
Keyword Search
Changes in this release:
- 20195b3: Defaulting of library name from
package.json
, also defaults the README title based on the entered library name (ie, if you domy-awesome-library
, the README title will beMy Awesome Library
) - 3065d48:
ExtractTextPlugin
fix for Webpack builds (by @jhwegener) - 1686560 & 162fcbd: Updated README for
upgrade
task information - 0d98da7: The names of outputted files aligns accurately with the Angular Package format
Published Works
First "Real" Beta
This is the first real beta (despite the .4
)--it comes with 3 big features: Angular Package Format and the upgrade
command, and custom configurations.
Angular Package Format
To stay as close to the Angular team's recommendations as possible, the publish format has changed to align with the Angular Package Format
This comes with a host of updates to the build process. But doing so has improved the build process and made it more robust.
Upgrade Command
Additionally there is a new command: upgrade
. This command allows you to upgrade the version of Angular Librarian as well as update the files managed by Angular Librarian in 1 command. The files managed by Angular Librarian are:
.gitignore
*.npmignore
*- karma.conf.js
package.json
*tsconfig.es2015.json
tsconfig.es5.json
tsconfig.json
tsconfig.test.json
tslint
src/test.js
tasks/
webpack/
Any files with a asterisk (*) next to their name have a merge strategy associated with them:
.gitignore
and.npmignore
will take any custom lines (case-sensitive) and add them to the new filepackage.json
will ensure any dependencies you've added are kept in thedependencies
anddevDependencies
attributes, as necessary.
Custom Configurations
To support upgrading, we've introduced the concept of custom configurations. By adding a configs
folder to your project and placing a configuration file for one of the extensible files, you can enhance the capabilities Angular Librarian provides out of the box. By doing this, we can ensure that the files Angular Librarian manages files can be safely updated without destroying your custom configuration.
For more information on custom configurations, please see the Custom Configurations section of the README
Peer Reviewed
This release contains two fixes from our first two external contributors:
- @Itschrismorgan contributed a fix for running
ngl
so thatp
creates a pipe andpub
publishes - @tobi-or-not-tobi contributed a huge performance boost while running the dev server (which lead to improvements on the testing front as well) by changing the source-mapping mechanism Webpack uses from
source-map
tocheap-module-eval-source-map
Thanks for the contributions!