Coder Social home page Coder Social logo

node-precinct's Introduction

Precinct npm npm

Unleash the detectives

npm install --save precinct

Uses the appropriate detective to find the dependencies of a file or its AST.

Supports:

  • JavaScript modules: AMD, CommonJS, and ES6.
  • Typescript
  • CSS Preprocessors: Sass, Stylus, and Less
  • CSS (PostCSS)

Usage

var precinct = require('precinct');

var content = fs.readFileSync('myFile.js', 'utf8');

// Pass in a file's content or an AST
var deps = precinct(content);

You may pass options (to individual detectives) based on the module type via an optional second object argument `detective(content, options), for example:

Example call: precinct(content, { amd: { skipLazyLoaded: true } });

  • The supported module type prefixes are amd, commonjs, es6, sass, stylus, less

Current options:

  • amd.skipLazyLoaded: tells the AMD detective to omit lazy-loaded dependencies (i.e., inner requires).
  • es6.mixedImports: allows for all dependencies to be fetched from a file that contains both CJS and ES6 imports.
  • Note: This will work for any file format that contains an es6 import.
  • css.url: tells the CSS detective to include url() references to images, fonts, etc.

Finding non-JavaScript (ex: Sass and Stylus) dependencies:

var content = fs.readFileSync('styles.scss', 'utf8');

var deps = precinct(content, { type: 'sass' });
var deps2 = precinct(content, { type: 'stylus' });

Or, if you just want to pass in a filepath and get the dependencies:

var paperwork = require('precinct').paperwork;

var deps = paperwork('myFile.js');
var deps2 = paperwork('styles.scss');
precinct.paperwork(filename, options)

Supported options:

  • includeCore: (default: true) set to false to exclude core Node dependencies from the list of dependencies.
  • fileSystem: (default: undefined) set to an alternative fs implementation that will be used to read the file path.
  • You may also pass detective-specific configuration like you would to precinct(content, options).

CLI

Assumes a global install of npm install -g precinct

precinct [options] path/to/file

  • Run precinct --help to see options

License

MIT

node-precinct's People

Contributors

bpscott avatar davidfirst avatar dazinator avatar jimthedev avatar jkemp-spotify avatar joscha avatar mrjoelkemp avatar pahen avatar realityking avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.