2014-09-01 5 views
7

Mam ten plik (duży pakiet z kilku plików JS), który pracował z browserify (5.10.0 ) do kilka dni temu , a teraz nie."Błąd: ścieżka musi być ciągiem" (v5.10.0)

To właśnie używam:

$ browserify index.js -o dist/out.bundle.js 

a wyjście jest:

Error: path must be a string 
at /usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:15:16 
at process._tickCallback (node.js:419:13) 

Ktoś wie co może być przyczyną tego? Czy istnieje sposób debugowania tego, aby spróbować dowiedzieć się, co przeszkadza w przeglądaniu?

Cheers

Odpowiedz

2

Niestety komunikat o błędzie nie jest bardzo pomocne, ale co się dzieje to:

Browserify wykorzystuje moduł resolve patrzeć pliki require rozmowy powinny być ładowanie. W jakiś sposób zamiast normalnie przekazywać ścieżkę, otrzymuję coś innego (to znaczy nie ciąg znaków).

To może teoretycznie być prawie wszystko, ale domyślam się, że to albo undefined albo jakaś naprawdę absurdalna wartość, jak obiekt lub funkcja. Zasadniczo wszystko, co teoretycznie mogłoby zostać przekazane do require i skutkować śmieciami.

Nie powiedziałeś, czy zaktualizowałeś moduły, dodano nowe transformacje lub zmodyfikowałeś jakiś kod w międzyczasie. Jak sugerujesz, że działa to dokładnie z wersją przeglądarki, której teraz używasz, mam zamiar wyjść na kończynę i zgadnąć, że jest to albo niewydolność transformacji, albo błąd w kodzie.

Spróbuj znaleźć wszystkie wywołania require w ostatnio zmodyfikowanym kodzie (od ostatniej znanej dobrej wersji). Jeśli używasz kontroli źródła (kogo żartuję: myślę o git) to powinno być dość trywialne. Jeśli nie używasz kontroli źródła, powinieneś używać kontroli źródła.

Jeśli znajdziesz nowe wywołania require, które przekazują coś innego niż ciąg znaków do require (np. Wiele argumentów lub nawet zmiennych), być może znalazłeś swojego winowajcę.

Jeśli to nie pomogło, sprawdź, czy masz jakieś transformacje, które mogą zostać zmienione w require. To może być prawie wszystko.

Jeśli to nie pomogło, spróbuj zaktualizować wszystko do najnowszej wersji. Poza tym może powodować problemy, jeśli używasz naprawdę przestarzałych wersji czegokolwiek, może to naprawić twój problem. Spróbuj zaktualizować do najnowszego wydania drugorzędnego (dla wersji> = 1.0) lub wydania poprawki (dla wersji < 1.0), jeśli chcesz uniknąć problemów ze zgodnością.

Jeśli to nadal nie pomoże, opublikuj więcej informacji i upewnij się, że rozumiesz dokładne różnice między kodem, który działał "kilka dni temu", a kodem, który masz teraz.

4

może coś jest nie tak w swoim package.json config, szczególnie dbać o linię przekształcić! ~

"browserify": { 
    "transform": [ 
     [ 
      "reactify", { 
       "harmony": "true" 
      } 
     ] 
    ] 
    } 
+0

Masz rację! Tks –

0

Być może zapomniał zainstalować pakiet przekształcić z KMP. Na przykład, jeśli używasz transformacji babelify za pomocą przeglądarki, możesz zapomnieć o instalacji babelify.