check-broken-links
Check array of links for contained broken links.
Last updated 2 years ago by actuallymentor .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install check-broken-links 
SYNC missed versions from official npm registry.

Check Broken Links

Build Status

An npm package that checks an array of supplied links for broken links.

const check = require( 'check-broken-links' )
const containsBroken = [
    'https://www.iCONTAINbrokenlinks.com',
    'https://www.iAMbroken.com',
    'https://www.iamfine.com'
]
check( 'https://base.url/', containsBroken ).then( brokenlinks => {
    console.log( brokenlinks )
    /*
    { top: [ { url: 'https://www.iAMbroken.com', err: [Object] } ],
      crawled:
       [ { link: 'https://iwasinside.com/iCONTAINbrokenlinks ',
           sources: [ 'https://iwasfoundinthislinkyou supplied.com', 'https://butalsointhisone.com' ] }
      ] },
      allchecked: { [ link: '', sources: [] ] } // This would obviously be populated
    */
} )

The base url for the relative links has a required trailing slash.

Mocha testing example

Let's say you want to check if your project has any broken links:

// Get polyfill so we can use full ES6 in the tests
import 'babel-polyfill'

// Get the expect functionality
import { expect } from 'chai'

// Display results as table
import 'console.table'

// Import the link checker
const check = require( 'check-broken-links' )

// We do not use arrow syntax here because that would break the this.timeout
describe( 'Links in the project', function( ) {

  // Set the timeouts high so that all links can be checked without many or slow requests crashing the test
  this.timeout( process.env.maxtimeout || ( 1000 * 60 * 5 ) )

  // Of course you would do some dynamic stuff to find links in the test below
  let yourlinks = []

  // The current setup uses mocha in a promise fashion
  // You could also have the callback be done => {}, but then need to call done() after the expect()
  it( 'All return 200', () => {
    return check( yourlinks )
    .then( brokenlinkarray => {
      if ( broken.top.length > 0 ) console.log( 'Broken Top levels' ); console.table( broken.top )
      if ( broken.crawled.length > 0 ) console.log( 'Broken crawled links' ); console.table( broken.crawled )
      expect( broken.crawled.length ).to.equal( 0 )
      expect( broken.top.length ).to.equal( 0 )
    } )
  } )
} )

Configuration

Want the module to console.log every request set the environment variable 'verbose' to true:

verbose=true node app.js 

This will log out every request. Successfull requests turn green, failed ones red.

The GET requests have a default timeout of 60 seconds. You can set this using the 'gettimeout' environment variable in seconds.

# 2 minute timeout
gettimeout=120 node app.js 

Current Tags

  • 2.0.4                                ...           latest (a year ago)

24 Versions

  • 2.0.4                                ...           a year ago
  • 2.0.3                                ...           2 years ago
  • 2.0.2                                ...           2 years ago
  • 2.0.1                                ...           2 years ago
  • 2.0.0                                ...           2 years ago
  • 1.2.1                                ...           2 years ago
  • 1.2.0                                ...           2 years ago
  • 1.1.6                                ...           3 years ago
  • 1.1.5                                ...           3 years ago
  • 1.1.4                                ...           3 years ago
  • 1.1.3                                ...           3 years ago
  • 1.1.2                                ...           3 years ago
  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.9                                ...           3 years ago
  • 1.0.8                                ...           3 years ago
  • 1.0.7                                ...           3 years ago
  • 1.0.6                                ...           3 years ago
  • 1.0.5                                ...           3 years ago
  • 1.0.4                                ...           3 years ago
  • 1.0.3                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (5)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |