pattern-lab / patternlab-node

The Node version of Pattern Lab
http://patternlab.io
MIT License
2.05k stars 405 forks source link

Can we entertain managing javascript libraries with bower? #109

Closed gfdickinson closed 9 years ago

gfdickinson commented 9 years ago

I noticed that the following javascript libraries are included in the source dir: fitvids.js, jquery.js, and modernizr.js. It would be nice if bower was added as a node dev dependency and we managed the versions of all of the third party libraries with bower. Would you be open to this idea if I came up with pull request?

gfdickinson commented 9 years ago

I just realized that there was already an issue for this...https://github.com/pattern-lab/patternlab-node/issues/27 Seems like it can just be a development dependency. I know that I am looking to expand patternlab to include authentication. I was thinking about looking into integrating angular into the generated static site. It would be nice if this dependency was managed by bower as well. Seems like adding another dependency on bower is not a big deal.

bradfrost commented 9 years ago

Hey there, fitvids, jquery, and modernizr are included for demo purposes only and can/should be removed at the start of a new project. Pattern Lab adds no dependencies to the front end code you wish to produce.

That being said, the Pattern Lab shell has dependencies. Whether or not those are managed by Bower should be left to smarter people to decide.

On Tuesday, March 17, 2015, George Dickinson notifications@github.com wrote:

I just realized that there was already an issue for this...#27 https://github.com/pattern-lab/patternlab-node/issues/27 Seems like it can just be a development dependency. I know that I am looking to expand patternlab to include authentication. I was thinking about looking into integrating angular into the generated static site. It would be nice if this dependency was managed by bower as well. Seems like adding another dependency on bower is not a big deal.

— Reply to this email directly or view it on GitHub https://github.com/pattern-lab/patternlab-node/issues/109#issuecomment-82523974 .


Brad Frost http://bradfrost.com http://twitter.com/brad_frost

bmuenzenmeyer commented 9 years ago

Related to https://github.com/pattern-lab/patternlab-node/issues/106

I've endeavored (along with Brad and Dave) to avoid a series of well-intentioned actions that result in a bootstrap-style framework.

That said, I will look again through the styleguide resources to see if it's necessary. In the end, however, I feel like if the shipped version of jquery works to render the menus, why fix it?

gfdickinson commented 9 years ago

I think I am starting to get it. I am really excited about the node version of Pattern Lab btw. The more I think about it, the more I realize I want to use PL it as a starter kit. We are using a bunch of 3rd party libraries (like foundation for apps) and I just want to make sure that I allow for a clean upgrade path of the Pattern Lab shell. I am trying to use my Pattern Lab project to do two things:

  1. build a distribution of reusable components to be consumed by various other projects
  2. build a public facing website that serves up examples of the patterns.

Do you guys see any problems with building item 1 on top of the Node version of Pattern Lab? I would basically be adding bower and custom assets and modifying the gruntfile

bmuenzenmeyer commented 9 years ago

@gfdickinson I have and plan to continue to use pattern lab to build design systems. at work we'll be using it to craft a component library for a hybrid desktop/web application. exciting stuff. I've used patternlab to build my personal site too. check out the post detailing the process here.

I see no problem with you building atop of patternlab. If you come across problems please report them; or if you want to contribute feel free too. There is a healthy issue log at the ready.

I am going to close this issue for now, citing the above conversations.

gfdickinson commented 9 years ago

As you work on the component library for the hybrid app, do you envision that it will be a separate project that your pattern lab project has dependencies to? I am curious to know what you think the ideal workflow looks like. I am trying to decide if I should create a separate component library project and have a Pattern Lab project that somehow consumes the assets of the component library (possibly through bower). The alternative would be to alter the build steps of the Pattern Lab and use it like a starter project. If I go this way, the Pattern Lab project becomes the system of record for the component library and I will create distributions as part of the Pattern lab build. Sorry to keep asking you questions. I am really interested in this an want to make sure that I start out with the right architecture.

bmuenzenmeyer commented 9 years ago

If done right, patternlab (and more generally important, the styleguide) could be the system of record that is exported or generated into a state that is consumable. The post I linked before does just this by crafting pattern HTML and CSS that I move into my Jekyll environment. This is admittedly a pretty simple use-case, but the workflow is one way, which is HUGE, and allows for simple consumption.

Others have made much more robust systems, see: http://engineering.lonelyplanet.com/2014/05/18/a-maintainable-styleguide.html for more info.

With proper workflow and tooling (which I think patternlab approaches with exports/grunt gulp) you can really have a great central hub for design, iteration, review and approval, onboarding new devs, showing RWD and atomic design systems to stakeholders, and development consumption.

Hope this helps. Please keep checking in with questions and challenges you encounter - very exciting stuff!

On Fri, Mar 20, 2015 at 8:51 AM, George Dickinson notifications@github.com wrote:

As you work on the component library for the hybrid app, do you envision that it will be a separate project that your pattern lab project has dependencies to? I am curious to know what you think the ideal workflow looks like. I am trying to decide if I should create a separate component library project and have a Pattern Lab project that somehow consumes the assets of the component library (possibly through bower). The alternative would be to alter the build steps of the Pattern Lab and use it like a starter project. If I go this way, the Pattern Lab project becomes the system of record for the component library and I will create distributions as part of the Pattern lab build. Sorry to keep asking you questions. I am really interested in this an want to make sure that I start out with the right architecture.

— Reply to this email directly or view it on GitHub https://github.com/pattern-lab/patternlab-node/issues/109#issuecomment-84020867 .

bradfrost commented 9 years ago

Perhaps a couple images from an upcoming blog post can help. Instead of thinking like this:

style-guide-workflow-1

We should be thinking like this:

style-guide-workflow-2

bmuenzenmeyer commented 9 years ago

:+1: x 1000

gfdickinson commented 9 years ago

I am on that train :)