index.js 548 B

123456789101112131415161718
  1. 'use strict'
  2. var path = require('path')
  3. module.exports = function (file) {
  4. var segments = file.split(path.sep)
  5. var index = segments.lastIndexOf('node_modules')
  6. if (index === -1) return
  7. if (!segments[index + 1]) return
  8. var scoped = segments[index + 1][0] === '@'
  9. var name = scoped ? segments[index + 1] + '/' + segments[index + 2] : segments[index + 1]
  10. var offset = scoped ? 3 : 2
  11. return {
  12. name: name,
  13. basedir: segments.slice(0, index + offset).join(path.sep),
  14. path: segments.slice(index + offset).join(path.sep)
  15. }
  16. }