JavaScript工具(JavaScript Tools)

Context: frontend-dev-bookmarks / Workflow

Tools for static analysis, pre and post processing of JavaScript files.

  • Babel: Babel is a generic multi-purpose compiler for JavaScript. Using Babel you can use (and create) the next generation of JavaScript, as well as the next generation of JavaScript tooling.
  • Closure Compiler: The Closure Compiler parses your JavaScript, analyzes it, removes dead code and rewrites and minimizes what's left. It also checks syntax, variable references, and types, and warns about common JavaScript pitfalls.
  • Flow: Flow is a static type checker for JavaScript. It can be used to catch common bugs in JavaScript programs before they run.
  • JSCodeshift: Codemods are tools that assist large-scale, partially automatable codebase refactoring. JSCodeshift is a toolkit for running codemods over multiple JS files.
  • JavaScript Code Linting: Linting is the process of running a program that will analyse code for potential errors.
    • ESLint: The pluggable linting utility for JavaScript and JSX.
    • JSHint: JSHint is a tool for more flexible static analysis of JavaScript programs.
    • JSLint: JSLint is a tool for detecting errors or problems by static analysis of JavaScript programs.
    • JSLint, JSHint and ESLint Error Explanations: JSLint Error Explanations is designed to help you improve your JavaScript by understanding the sometimes cryptic error messages produced by JSLint, JSHint and ESLint, and teaching you how to avoid such errors.
  • Module Bundlers and Loaders: Libraries for bundling JavaScript Modules into one or several files.
    • Browserify: Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
      • Budo: A browserify development server, focused on incremental reloading, LiveReload integration (including CSS injection), and other high-level features.
      • Watchify: Watch mode for browserify builds.
    • CrapLoader: The goal of crapLoader is to load ads, widgets or any JavaScript code with document.write in it. This library hijacks document.write and delegates the content loaded from each script into the correct position.
    • Modules Webmake: A CommonJS module bundler similar to Browserify but much faster due to different requirements finder.
    • Require.js: RequireJS is a JavaScript file and AMD module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments.
    • Require1k: CommonJS require for the browser in 1KB, with no build needed.
    • Rollup.js: Rollup is a next-generation JavaScript module bundler. Author your app or library using ES2015 modules, then efficiently bundle them up into a single file for use in browsers and Node.js.
    • SystemJS: Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS. Works with both Traceur and Babel.
    • URequire: The Ultimate JavaScript Module Builder & Automagical Task Runner.
    • Webpack: Webpack is a module bundler. It takes modules with dependencies and generates static assets representing those modules.
  • Regenerator: This package implements a source transformation that takes the proposed syntax for generators/yield from future versions of JS and spits out efficient JS-of-today (ES5) that behaves the same way.