2014-11-10 2 views
2

Я использую WebPack-DEV-промежуточный программное обеспечение в моем сервере для компиляции JavaScript, как это:WebPack-DEV-промежуточный слой не компилирует выход в папку

if (development){               
    app.use(webpackMiddleware(webpack({          
    // webpack options             
    // webpackMiddleware takes a Compiler object as first parameter  
    // which is returned by webpack(...) without callback.    
    entry: {                
     dashboard: path.join(__dirname, 'scripts/dashboard.jsx'),    
     tasks: path.join(__dirname, 'scripts/tasks.jsx')      
    },                  
     output: {                
      path: __dirname + 'dist',           
      filename: '[name].bundle.js',          
      // no real path is required, just pass "/"      
      // but it will work with other paths too.       
     },                 
     resolve: {               
     extensions: ['', '.js', '.jsx']          
     },                 
     module: {                
     loaders: [               
      { test: /\.jsx$/, loader: "jsx" }        
     ]                 
     }                  
    }                   
),                  
    {                   
    stats: {                
    colors: true               
    }                  
    }));                  
} 

Все отлично в опытно-конструкторских работах, я могу включать в себя пакеты в моих взглядах. Но в производстве я не могу их включить, потому что они не встроены в «dist». Эта папка всегда пуста. Что я делаю неправильно? Есть ли у кого-то идеи?

С наилучшими пожеланиями Ян

ответ

5

webpack-dev-middleware не выводит какой-либо файл. Если вы хотите вывести реальные файлы, вам нужно использовать команду webpack вне экспресс. Вы можете поместить свою конфигурацию webpack в отдельный файл и ссылаться на нее как с вашей командой webpack, так и на ее экспресс-скрипт.

+0

спасибо, я понял это себе –

+2

Вот плагин, который заставляет WebPack-DEV-сервер для записи файлов в файловую систему. https://github.com/gajus/write-file-webpack-plugin – Gajus

1

, если вы хотите использовать пакет в памяти, вы можете использовать потоковый файл, как это:

var express = require('express'); 
var app = express(); 
var webpack = require('webpack'); 
var path = require('path'); 

var compiler = webpack(require('./webpack.config.js')); 

app.use(require('webpack-dev-middleware')(compiler, { 
    noInfo: true, 
    publicPath: '/' 
})); 

app.use('*', function (req, res, next) { 
    var filename = path.join(compiler.outputPath,'index.html'); 
    compiler.outputFileSystem.readFile(filename, function(err, result){ 
    if (err) { 
     return next(err); 
    } 
    res.set('content-type','text/html'); 
    res.send(result); 
    res.end(); 
    }); 
}); 

app.listen(3000); 
Смежные вопросы