Sass imports from node_modules

Aperta
#132 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
javascript, node.js, sass, webpack

Direzione di ricerca

Inizia leggendo la funzione di ricerca di Sass nell’index.js di node-filing-cabinet intorno alla riga indicata, quindi confrontala con il resolver personalizzato in bin/render-stylesheet.js di wp-calypso. Determina dove debba risiedere il supporto per gli import Sass da node_modules e per le diverse posizioni delle dipendenze, e definisci il completamento in base alla risoluzione di tali import senza interrompere la gestione esistente delle directory.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Howdy! In sass, you can use sass-loader with Webpack to resolve Sass imports from node modules. This can look something like the following:

@import 'npm-package/stylesheet'

// etc

This should resolve to node_modules/npm-package/stylesheet.scss. Unfortunately, cabinet + sass-lookup doesn't quite handle this use case. You can get it to resolve using just cabinet, by passing node_modules as a directory, but dependency tree doesn't accept multiple directories in general, so that won't work for our use case. I was wondering what a good path would be towards implementing support.

A really naive implementation could be something like this as the lookup function for sass in cabinet.

function sassResolver(options) {
  let { directory } = options;
  if (typeof directory === 'string') {
    directory = [ directory ];
  }
  directory.push( 'node_modules' );
  return sassLookup({ ...options, directory })
}

This does work, but it wouldn't be able to handle different node_modules locations, such as in monorepos. One could also add a custom resolver like this: https://github.com/Automattic/wp-calypso/blob/6ef9f9278aaf368cd629ba69c33c4768dc7ea08d/bin/render-stylesheet.js#L16-L23. But I'm not sure where exactly to put that -- would the sass-lookup package be a good fit?

What are your thoughts?

Lingua principale
JavaScript
Stelle
776
Fork
82
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dependents/node-dependency-tree

Tutte le issue di dependents/node-dependency-tree

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.