2015-04-21 12 views
19

Istnieje opcja cacheDirectory w programie Babel-Loader. Nie mogę się dowiedzieć, jak go użyć z następującą konfiguracją pakietu:Jak określić opcję cacheDirectory podczas korzystania z programu Babel-Loader z pakietem sieci Web?

var compiler = webpack({ 
    context: path.resolve(__dirname + "/../../" + rootModuleDir + "/" + modules[ module ]), 
    entry: "./index.jsx", 
    resolve: { 
     root: path.resolve(__dirname + "/../../assets/js/lib/react"), 
     extensions: [ "", ".js", ".jsx" ] 
    }, 
    output: { 
     path: targetDir, 
     filename: modules[ module ] + ".js" 
    }, 
    module: { 
     loaders: [ 
      { test: /\.jsx?$/, exclude: /node_modules/, loader: "babel-loader?optional=runtime" } 
     ] 
    }, 
    plugins: [ 
     //new webpack.optimize.UglifyJsPlugin(), 
     new webpack.SourceMapDevToolPlugin({ 
      filename: "[file].map" 
     }) 
    ] 
}); 

Gdzie powinien iść?

Odpowiedz

17

Można dodać go do konfiguracji babel-ładowarki jak to:

loaders: [ 
    { 
     test: /\.jsx?$/, 
     exclude: /node_modules/, 
     loader: "babel-loader?optional=runtime&cacheDirectory" 
    } 
] 

Uwaga, nie należy dodać =true, to niepotrzebna i ustawi cacheDirectory na katalog o nazwie true. Numer referencyjny: using cacheDirectory fails with Error

Można również użyć właściwości query:

rules: [ 
    { 
     test: /\.jsx?$/, 
     exclude: /node_modules/, 
     loader: "babel-loader", 
     query: { 
      optional: "runtime", 
      cacheDirectory: true 
     } 
    } 
] 

Przy użyciu właściwości query, określając true pozwoli opcję, a określając wartość ciągu będzie włączyć opcję i skonfigurować go używać, nazwa katalogu. Numer referencyjny: query parameters

+2

Zgodnie z dokumentacją babel, '= true' spowoduje, że program ładujący użyje domyślnego katalogu pamięci podręcznej. Zobacz https://github.com/babel/babel-loader –

+0

Naprawię błąd "składni" dla brakujących ',' i 'rules' zamiast' loader' – AmerllicA

2

dodać go do łańcucha ładowarki tak:

module: { 
    loaders: [ 
     { test: /\.jsx?$/, exclude: /node_modules/, loader: "babel-loader?optional=runtime&cacheDirectory=true" } 
    ] 
}, 
+0

Już próbowałem. Ale nie wydaje się, aby cache nic, ponieważ czas potrzebny na pakiety "webpack" pozostaje taki sam. –

+0

Zauważ, że możesz spróbować przekazać do niego ścieżkę oprócz wartości boolowskiej. Po ustawieniu wartości true powinien używać domyślnego katalogu systemu operacyjnego. Może to pomaga w debugowaniu. –

+0

Warto rzucić okiem na to: http://babeljs.io/docs/usage/require na początek. –

Powiązane problemy