Sto assemblando un repository che sarà disponibile su npm. Il repository è composto da più moduli, simili a react-leaflet e react-d3. Gli sviluppatori di applicazioni includeranno moduli dal all'interno del pacchetto NPM tramite require
/import
, ad es .:Includere CSS (Sass) da più moduli
import { ModuleOne, ModuleTwo } from 'myNpmPackage`;
Ho bisogno di confezionare CSS insieme a ciascuno di questi moduli, e che i CSS verranno compilati dai file Sass all'interno di ogni modulo.
dato una struttura di cartelle per myNpmPackage
come:
├── src
│ ├── ModuleOne
│ │ ├── index.js
│ │ ├── style.scss
│ ├── ModuleTwo
│ │ ├── index.js
│ │ ├── style.scss
├── package.json
cosa è un buon pubblicare flusso di rendere i file .scss
(compilato nel .css
) a disposizione dei consumatori di myNpmPackage
, senza richiedere che i consumatori in modo esplicito includono/@import
/link rel="stylesheet"
il CSS?
Sto usando gulp e browserify e preferisco restare con quella pipeline.
UPDATE: ho trovato parcelify
fa alcuni di cosa ho bisogno. Aggiungo quanto segue per myNpmPackage/package.json
:
"style": "src/**/*.scss",
"transforms": [
"sass-css-stream"
]
e aggiungi parcelify
a dependencies
, in modo che venga installato insieme a myNpmPackage
.
I consumatori di myNpmPackage
devono quindi aggiungere il seguente alla loro gulpfile
:
parcelify(b, {
bundles: {
style: './build/modules.css'
}
});
parcelify
utilizzerà il "style"
glob in myNpmPackage/package.json
di radunare tutti i file .scss
in myNpmPackage
s' moduli e distribuirli in ./build/modules.css
.
Questo è sempre lì, ma non è l'ideale per due motivi:
- I file CSS di ogni modulo sono tutti inclusi nella build dell'applicazione dei consumatori, anche se non tutti i moduli sono inclusi;
- Questa strategia richiede allo sviluppatore di applicazioni consumer di aggiungere codice al proprio
gulpfile
anziché "solo funzionante".
So che si vuole attaccare con browserify ma [webpack] (http://webpack.github.io/) è davvero perfetto per il tuo caso d'uso –
@ JulienCabanès ti dispiacerebbe elaborare? Forse hai più familiarità con il webpack di me e puoi condividere un esempio di come farei questo con il webpack. – ericsoco