本文整理匯總了TypeScript中@angular-devkit/build-webpack.WebpackDevServerBuilder類的典型用法代碼示例。如果您正苦於以下問題:TypeScript WebpackDevServerBuilder類的具體用法?TypeScript WebpackDevServerBuilder怎麽用?TypeScript WebpackDevServerBuilder使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了WebpackDevServerBuilder類的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: run
run(builderConfig: BuilderConfiguration<DevServerBuilderOptions>): Observable<BuildEvent> {
const options = builderConfig.options;
const root = this.context.workspace.root;
const projectRoot = resolve(root, builderConfig.root);
const host = new virtualFs.AliasHost(this.context.host as virtualFs.Host<fs.Stats>);
const webpackDevServerBuilder = new WebpackDevServerBuilder({ ...this.context, host });
let browserOptions: BrowserBuilderSchema;
let first = true;
let opnAddress: string;
return checkPort(options.port, options.host).pipe(
tap((port) => options.port = port),
concatMap(() => this._getBrowserOptions(options)),
tap((opts) => browserOptions = opts),
concatMap(() => addFileReplacements(root, host, browserOptions.fileReplacements)),
concatMap(() => normalizeAssetPatterns(
browserOptions.assets, host, root, projectRoot, builderConfig.sourceRoot)),
// Replace the assets in options with the normalized version.
tap((assetPatternObjects => browserOptions.assets = assetPatternObjects)),
concatMap(() => {
const browserBuilder = new BrowserBuilder(this.context);
const webpackConfig = browserBuilder.buildWebpackConfig(
root, projectRoot, host, browserOptions as NormalizedBrowserBuilderSchema);
let webpackDevServerConfig: WebpackDevServer.Configuration;
try {
webpackDevServerConfig = this._buildServerConfig(
root, projectRoot, options, browserOptions);
} catch (err) {
return throwError(err);
}
// Resolve public host and client address.
let clientAddress = `${options.ssl ? 'https' : 'http'}://0.0.0.0:0`;
if (options.publicHost) {
let publicHost = options.publicHost;
if (!/^\w+:\/\//.test(publicHost)) {
publicHost = `${options.ssl ? 'https' : 'http'}://${publicHost}`;
}
const clientUrl = url.parse(publicHost);
options.publicHost = clientUrl.host;
clientAddress = url.format(clientUrl);
}
// Resolve serve address.
const serverAddress = url.format({
protocol: options.ssl ? 'https' : 'http',
hostname: options.host === '0.0.0.0' ? 'localhost' : options.host,
port: options.port.toString(),
});
// Add live reload config.
if (options.liveReload) {
this._addLiveReload(options, browserOptions, webpackConfig, clientAddress);
} else if (options.hmr) {
this.context.logger.warn('Live reload is disabled. HMR option ignored.');
}
if (!options.watch) {
// There's no option to turn off file watching in webpack-dev-server, but
// we can override the file watcher instead.
webpackConfig.plugins.unshift({
// tslint:disable-next-line:no-any
apply: (compiler: any) => {
compiler.hooks.afterEnvironment.tap('angular-cli', () => {
compiler.watchFileSystem = { watch: () => { } };
});
},
});
}
if (browserOptions.optimization) {
this.context.logger.error(tags.stripIndents`
****************************************************************************************
This is a simple server for use in testing or debugging Angular applications locally.
It hasn't been reviewed for security issues.
DON'T USE IT FOR PRODUCTION!
****************************************************************************************
`);
}
this.context.logger.info(tags.oneLine`
**
Angular Live Development Server is listening on ${options.host}:${options.port},
open your browser on ${serverAddress}${webpackDevServerConfig.publicPath}
**
`);
opnAddress = serverAddress + webpackDevServerConfig.publicPath;
webpackConfig.devServer = webpackDevServerConfig;
return webpackDevServerBuilder.runWebpackDevServer(
webpackConfig, undefined, getBrowserLoggingCb(browserOptions.verbose),
);
}),
map(buildEvent => {
if (first && options.open) {
first = false;
opn(opnAddress);
//.........這裏部分代碼省略.........
示例2: throwError
concatMap(() => {
const browserBuilder = new BrowserBuilder(this.context);
const webpackConfig = browserBuilder.buildWebpackConfig(
root, projectRoot, host, browserOptions as NormalizedBrowserBuilderSchema);
let webpackDevServerConfig: WebpackDevServer.Configuration;
try {
webpackDevServerConfig = this._buildServerConfig(
root, projectRoot, options, browserOptions);
} catch (err) {
return throwError(err);
}
// Resolve public host and client address.
let clientAddress = `${options.ssl ? 'https' : 'http'}://0.0.0.0:0`;
if (options.publicHost) {
let publicHost = options.publicHost;
if (!/^\w+:\/\//.test(publicHost)) {
publicHost = `${options.ssl ? 'https' : 'http'}://${publicHost}`;
}
const clientUrl = url.parse(publicHost);
options.publicHost = clientUrl.host;
clientAddress = url.format(clientUrl);
}
// Resolve serve address.
const serverAddress = url.format({
protocol: options.ssl ? 'https' : 'http',
hostname: options.host === '0.0.0.0' ? 'localhost' : options.host,
port: options.port.toString(),
});
// Add live reload config.
if (options.liveReload) {
this._addLiveReload(options, browserOptions, webpackConfig, clientAddress);
} else if (options.hmr) {
this.context.logger.warn('Live reload is disabled. HMR option ignored.');
}
if (!options.watch) {
// There's no option to turn off file watching in webpack-dev-server, but
// we can override the file watcher instead.
webpackConfig.plugins.unshift({
// tslint:disable-next-line:no-any
apply: (compiler: any) => {
compiler.hooks.afterEnvironment.tap('angular-cli', () => {
compiler.watchFileSystem = { watch: () => { } };
});
},
});
}
if (browserOptions.optimization) {
this.context.logger.error(tags.stripIndents`
****************************************************************************************
This is a simple server for use in testing or debugging Angular applications locally.
It hasn't been reviewed for security issues.
DON'T USE IT FOR PRODUCTION!
****************************************************************************************
`);
}
this.context.logger.info(tags.oneLine`
**
Angular Live Development Server is listening on ${options.host}:${options.port},
open your browser on ${serverAddress}${webpackDevServerConfig.publicPath}
**
`);
opnAddress = serverAddress + webpackDevServerConfig.publicPath;
webpackConfig.devServer = webpackDevServerConfig;
return webpackDevServerBuilder.runWebpackDevServer(
webpackConfig, undefined, getBrowserLoggingCb(browserOptions.verbose),
);
}),