File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 5252 "mkdirp" : " ^0.5.1" ,
5353 "node-fetch" : " ^2.3.0" ,
5454 "node-libs-browser" : " ^2.1.0" ,
55- "readable-stream" : " ^2.3.6"
55+ "readable-stream" : " ^2.3.6" ,
56+ "resolve" : " ^1.9.0"
5657 },
5758 "devDependencies" : {
5859 "@babel/cli" : " ^7.2.3" ,
Original file line number Diff line number Diff line change 11import fs from 'fs' ;
2+ import resolve from 'resolve' ;
23import fetch from 'node-fetch' ;
34import crypto from 'crypto' ;
45import { ensureParsed } from 'ast-matcher' ;
@@ -16,12 +17,24 @@ export function isPackageName(path) {
1617}
1718
1819export function resolvePackagePath ( packageName ) {
20+ let metaPath ;
21+ // we resolve package.json instead of package's main file,
22+ // as some npm package (like font-awesome v4) has no main file.
23+ const packageJson = packageName + '/package.json' ;
24+
1925 try {
20- let metaPath = require . resolve ( packageName + '/package.json' ) ;
21- return metaPath . slice ( 0 , - 13 ) ;
26+ try {
27+ // try from dumber first
28+ metaPath = require . resolve ( packageJson ) ;
29+ } catch ( e ) {
30+ // try from app's local folder, this is necessary to support lerna
31+ // hoisting where dumber is out of app's local node_modules folder.
32+ metaPath = resolve ( packageJson , { basedir : process . cwd ( ) } ) ;
33+ }
2234 } catch ( e ) {
2335 throw new Error ( 'cannot find npm package: ' + packageName ) ;
2436 }
37+ return metaPath . slice ( 0 , - 13 ) ;
2538}
2639
2740export function fsReadFile ( filePath ) {
You can’t perform that action at this time.
0 commit comments