Durante lo sviluppo del mio modulo React
npm
, l'ho simulato con npm link
. Dopo aver eseguito questa operazione, il pacchetto viene collegato correttamente e appare anche nell'app consumer node_modules
.Il symlinking reagisce i moduli con il collegamento npm per lo sviluppo locale dà l'errore
Il modulo espone un'interfaccia per creare un componente React
. Poiché sto utilizzando React
, jsx
e es2015
, sto utilizzando babel
per traspondere il codice del mio modulo nella fase di pre-pubblicazione, utilizzando lo npm prepublish hook
.
Tuttavia, quando provo ad installare la mia applicazione consumer con webpack
(cioè dopo collegandolo) si verifica un errore nel mio pacchetto affermando:
Module build failed: Error: Couldn't find preset "es2015"
Ora la parte divertente è che se pubblicare il pacchetto su NPM , quindi npm install
dal registro nella mia app consumer, compilarlo, tutto funziona correttamente.
Ho provato a installare il babel-preset-es2015
nella mia app consumer, ma poi inizia a lamentarsi di non trovare babel
:
Module not found: Error: Cannot resolve module 'babel'
Anche in questo caso, se lo installo dal Registro di NPM tutto funziona bene, nessun errore sono gettati durante costruire.
Ho anche provato a installare babel-core
, babel-cli
e babel-polyfill
, tutto inutilmente.
Sto usando babel v6.1.x
ovunque e consapevole di tutte le modifiche recenti, tuttavia suppongo che mi manchi qualcosa di ovvio e lo apprezzerei davvero se qualcuno mi può aiutare, perché pubblica continuamente il modulo per testare se roba funziona è solo una cattiva pratica.
Per completezza bene ecco il codice:
Questi sono i passi che seguo per collegare il modulo:
cd ~/Sites/me/react-leafbox
npm link
cd ~/Sites/me/mapp
npm link react-leafbox
npm start
traccia stack dopo edificio:
ERROR in ../react-leafbox/lib/index.js
Module build failed: Error: Couldn't find preset "es2015"
at OptionManager.mergePresets (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:329:17)
at OptionManager.mergeOptions (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:289:12)
at OptionManager.addConfig (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:223:10)
at OptionManager.findConfigs (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:366:16)
at OptionManager.init (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:410:12)
at File.initOptions (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/index.js:191:75)
at new File (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/index.js:122:22)
at Pipeline.transform (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/pipeline.js:42:16)
at transpile (/Users/daniel/Sites/me/mapp/node_modules/babel-loader/index.js:14:22)
at Object.module.exports (/Users/daniel/Sites/me/mapp/node_modules/babel-loader/index.js:83:14)
@ ./src/js/components/App.jsx 2:10-34
Pila traccia dopo l'aggiunta di dipendenze babel in più correlati (che credo should't essere necessario, perché sono disponibili nel modulo react-leafbox):
ERROR in ../react-leafbox/lib/index.js
Module not found: Error: Cannot resolve module 'babel' in /Users/daniel/Sites/me/react-leafbox/lib
@ ../react-leafbox/lib/index.js 8:11-39
sto usando node v5.0.0
con npm v3.3.6
su MAC OSX El Capitan v10.11.1
. Ho anche provato a utilizzare node v4.2.1
con npm 2.14.7
, che mi dà gli stessi errori.
Si prega di leggere descrizioni dei tag. 'babel' è per domande per una * libreria Python * con detto nome. –
@FelixKling Mi mancava quello, grazie per averlo corretto. – danillouz