2016-05-06 21 views
5

Tworzę dwa pakiety pakietów Webpack: vendors.dll.js i client.js.Jak przenieść "babel-runtime" do biblioteki DLL dostawcy Webpack?

Dostawców tworzy się za pomocą pakietu webpack.DllPlugin. Zawiera wszystkie moduły front-end w node_modules/. To działa świetnie.

Klient zawiera mój kod aplikacji. Korzysta z pakietu webpack.DllReferencePlugin do delegowania do biblioteki DLL dla dostawców. To działa świetnie.

Klient uruchamia wszystkie javascript przez babel-loader. Korzystam z wtyczki babel-plugin-transform-runtime, co powoduje, że cały bałagan składników core-js jest kompilowany do mojego pakietu klienckiego. Wolałbym przenieść te rzeczy do biblioteki DLL, ponieważ nie zmienia się tak często, jak aplikacja.

AFAIK nie można po prostu dołączyć babel-runtime w DLL (próbowałem tego). Z tego, co mogę powiedzieć, rzeczy core-js są ładowane bardziej bezpośrednio, a babel-runtime nie ma nawet main z tego, co mogę powiedzieć.

Babel: 6.x WebPACK: 1.x

okazji, aby zapewnić rzeczywistą config jeśli jej potrzebne, aby rozwiązać ten problem.

Odpowiedz

1

Można skanować wymagane katalogi i uwzględnić wszystkie pliki, takie jak to.

const readDir = dir => { 
    const result = []; 
    fs.readdirSync(dir).map(file => { 
    if (file.match(/\.js$/)) result.push(`${dir.replace('./node_modules/', '')}/${file}`); 
    else if (fs.lstatSync(dir + '/' + file).isDirectory()) result.push(...readDir(dir + '/' + file)); 
    }); 
    return result 
} 
const babelRuntimeHelpers = readDir('./node_modules/babel-runtime/helpers'); 
const babelRuntimeCoreJs = readDir('./node_modules/babel-runtime/core-js'); 

a następnie dodać te do tablicy Producent:

vendor: [ 
    ...babelRuntimeHelpers, 
    ...babelRuntimeCoreJs, 
    ...rest 
] 
Powiązane problemy