2015-01-08 2 views
10

--inline--host 플래그와 함께 사용했습니다. 이 모든 것이 잘 작동합니다.webpack-dev-server API와 Gulp에서 인라인 모드를 사용하는 방법

webpack-dev-server --inline --host example.com

나는 다음 gulp를 사용하여이 작업과 웹팩-DEV-서버 API를 마무리 바라 보았다. 이 작동하지 않는 것

var gulp    = require('gulp'); 
var gutil   = require('gulp-util'); 
var Webpack   = require('webpack'); 
var WebpackDevServer = require('webpack-dev-server'); 
var WebpackConfig = require('./webpack.config.js'); 

gulp.task('default', ['webpack-dev-server']); 

gulp.task('webpack-dev-server', function(callback) { 
    new WebpackDevServer(Webpack(WebpackConfig), { 
    host: 'example.com', 
    inline: true, 
    publicPath: WebpackConfig.output.publicPath, 
    }).listen(port, host, function(err) { 
    if(err) throw new gutil.PluginError('webpack-dev-server', err); 
    gutil.log('[webpack-dev-server]', 'http://example.com:8080'); 
    }); 
}); 

, 나는 API에 대한 inline 또는 host 없다 생각합니다.

가능한지 알고 싶습니다.

답변

-1

인라인 모드는 기본적으로 활성화되어 있습니다 - 서버에 전달 된 옵션의 플래그를 통해 활성화 할 수 없습니다 http://host:port/webpack-dev-server/

+1

아마도 내가 오해 한 것을 인라인 모드가 실제로 하지만 iframe이 아닌 모드를 암시한다고 생각했습니다. http : // host : port/webpack-dev-server /에서 검색하면 레이아웃 문제가 발생하므로 피하려고합니다. – Hugh

+1

나는 틀렸다고 생각하고 옳다. 원하는 것은 호스트가 아닙니다 : port/? 기본적으로 비 iframe 모드에서 파일에 액세스 할 수 있습니다. –

+0

당신은 정말로 옳을 수도 있습니다. 처음에는 묵시적인 인라인 모드를 언급 한 다음 명시 적으로 언급 한 것처럼 문서가 약간 혼란 스럽습니다. 불행하게도'호스트'를 설정하는 것은 나에게 매우 유용하다. 나는 코드에 좀 더 들어가야한다고 생각한다. – Hugh

4

인라인 옵션으로 이동합니다. 그러나 command line script을 살펴보면 webpack 컴파일러에 전달 된 옵션에 추가 항목 스크립트를 추가하는 것만 알 수 있습니다.

코드에서 똑같은 작업을 반복 할 수 있습니다.

WebpackConfig.entry = [ 
    WebPackConfig.entry, // assuming you have a single existing entry 
    require.resolve("webpack-dev-server/client/") + '?http://localhost:9090', 
    'webpack/hot/dev-server' 
] 
4

현재 Webpack 버전 (1.13.2)에서이 작업을 수행 할 수 있습니다. documentation에서

:

인라인 모드를 사용하려면, 하나

명령 행에서 --inline를 지정합니다. 에서
지정 devServer: { inline: true } 당신의 webpack.config.js

+1

나는이 작업을 얻지 못했고 문서는 여전히 서버가 webpack.config.js에 대해 아무것도 모른다고 말합니다 ... –

0

것 같다 그 대답은 오래된 있고 난 꿀꺽 꿀꺽 통해 inline를 추가 할 그들 중 하나를 사용하여 관리하지 않았다, 그래서 나는 webpack-dev-server.js을 열어 것을 수행하는 방법을 복사 한 내 꿀꺽 꿀꺽 마시고 그것을 약간 수정했다. 그것은 작동 (그것이 비록 약간 불쾌한) :

function addInline(config, hot) { 
    var devClient = [require.resolve("webpack-dev-server/client/") + "?http://localhost:8080"]; 

    if (hot) { 
     devClient.push("webpack/hot/dev-server"); 
    } 
    [].concat(config).forEach(function (config) { 
     if (typeof config.entry === "object" && !Array.isArray(config.entry)) { 
      Object.keys(config.entry).forEach(function (key) { 
       config.entry[key] = devClient.concat(config.entry[key]); 
      }); 
     } else { 
      config.entry = devClient.concat(config.entry); 
     } 
    }); 
} 

당신이 웹팩에 전달하기 전에 거기에 설정을 통과해야합니다

var webpackDevelopmentConfig = require('./Source/config/webpack.config.development.js'); 
addInline(webpackDevelopmentConfig) 

var compiler = webpack(webpackDevelopmentConfig); 
관련 문제