Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B bootstrap
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 263
    • Issues 263
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 114
    • Merge requests 114
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Bootstrap
  • bootstrap
  • Merge requests
  • !20332

v4: Move to npm scripts

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Mark Otto requested to merge v4-npm into v4-dev Jul 20, 2016
  • Overview 0
  • Commits 2
  • Pipelines 0
  • Changes 12

This PR is heavily WIP, but addresses a growing concern I've had with developing Bootstrap—the build process is way to convoluted. Currently we make use of Grunt, npm, Bundler, Jekyll, etc all just to run our docs and compile source assets. More personally, I find the current dev process incredibly fatiguing—as a maintainer, it's hard to be motivated to jump into this codebase right now.

My goal here is to overhaul the build process and make Bootstrap development more approachable to everyone (myself included). Originally I was thinking Gulp would be our answer, but it's still a task runner build on npm rather than npm itself.

So far I've started to pull apart a few bits of our current tooling and replacing them with npm scripts. Right now they all live under tasks/ and are split by dist/ and docs/. I'm probably doing a ton wrong, but maybe you can help with that :D.

Here's the list of tasks we need for developing and distributing Bootstrap:

  • CSS
    • Lint Sass before trying to compile (with stylelint over scss-lint)
    • Compile Sass files with node-sass (no more Ruby options)
    • Compile and minify Sass files
    • Autoprefixer compiled CSS files
  • JavaScript
    • Babel
    • Uglify
    • Qunit tests
    • Concatenate and minify
  • Docs/development
    • Update version
    • Shrinkwrap dependencies
    • Lint HTML files
    • Run Jekyll and watch Sass/JS files (stylelint, compile, autoprefixer)
    • Saucelabs?
    • Package dist files in zipfile for release
    • Deploy Jekyll _site directory to remote to update docs site

I'm probably missing some tasks/scripts we need, but I do believe we need the above. These tasks should be runnable by us as maintainers, as well as casual users who wish to extend Bootstrap's code and docs, so I want them to be clear, concise, and documented.

/cc @twbs/team

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: v4-npm