mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-22 17:47:53 +00:00
Fix some build issues
This commit is contained in:
@@ -1,89 +1,89 @@
|
|||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
using Microsoft.AspNet.Hosting;
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.NodeServices;
|
using Microsoft.AspNet.NodeServices;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.Extensions.PlatformAbstractions;
|
using Microsoft.Extensions.PlatformAbstractions;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace ES2015Example
|
namespace ES2015Example
|
||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
|
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
|
||||||
{
|
{
|
||||||
// Setup configuration sources.
|
// Setup configuration sources.
|
||||||
var builder = new ConfigurationBuilder()
|
var builder = new ConfigurationBuilder()
|
||||||
.SetBasePath(appEnv.ApplicationBasePath)
|
.SetBasePath(appEnv.ApplicationBasePath)
|
||||||
.AddJsonFile("appsettings.json")
|
.AddJsonFile("appsettings.json")
|
||||||
.AddEnvironmentVariables();
|
.AddEnvironmentVariables();
|
||||||
Configuration = builder.Build();
|
Configuration = builder.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IConfigurationRoot Configuration { get; set; }
|
public IConfigurationRoot Configuration { get; set; }
|
||||||
|
|
||||||
// This method gets called by the runtime.
|
// This method gets called by the runtime.
|
||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
// Add MVC services to the services container.
|
// Add MVC services to the services container.
|
||||||
services.AddMvc();
|
services.AddMvc();
|
||||||
|
|
||||||
// Enable Node Services
|
// Enable Node Services
|
||||||
services.AddNodeServices();
|
services.AddNodeServices();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure is called after ConfigureServices is called.
|
// Configure is called after ConfigureServices is called.
|
||||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, INodeServices nodeServices)
|
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, INodeServices nodeServices)
|
||||||
{
|
{
|
||||||
loggerFactory.MinimumLevel = LogLevel.Warning;
|
loggerFactory.MinimumLevel = LogLevel.Warning;
|
||||||
loggerFactory.AddConsole();
|
loggerFactory.AddConsole();
|
||||||
loggerFactory.AddDebug();
|
loggerFactory.AddDebug();
|
||||||
|
|
||||||
// Configure the HTTP request pipeline.
|
// Configure the HTTP request pipeline.
|
||||||
|
|
||||||
// Add the platform handler to the request pipeline.
|
// Add the platform handler to the request pipeline.
|
||||||
app.UseIISPlatformHandler();
|
app.UseIISPlatformHandler();
|
||||||
|
|
||||||
// Add the following to the request pipeline only in development environment.
|
// Add the following to the request pipeline only in development environment.
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
{
|
{
|
||||||
app.UseDeveloperExceptionPage();
|
app.UseDeveloperExceptionPage();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Add Error handling middleware which catches all application specific errors and
|
// Add Error handling middleware which catches all application specific errors and
|
||||||
// send the request to the following path or controller action.
|
// send the request to the following path or controller action.
|
||||||
app.UseExceptionHandler("/Home/Error");
|
app.UseExceptionHandler("/Home/Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dynamically transpile any .js files under the '/js/' directory
|
// Dynamically transpile any .js files under the '/js/' directory
|
||||||
app.Use(next => async context => {
|
app.Use(next => async context => {
|
||||||
var requestPath = context.Request.Path.Value;
|
var requestPath = context.Request.Path.Value;
|
||||||
if (requestPath.StartsWith("/js/") && requestPath.EndsWith(".js")) {
|
if (requestPath.StartsWith("/js/") && requestPath.EndsWith(".js")) {
|
||||||
var fileInfo = env.WebRootFileProvider.GetFileInfo(requestPath);
|
var fileInfo = env.WebRootFileProvider.GetFileInfo(requestPath);
|
||||||
if (fileInfo.Exists) {
|
if (fileInfo.Exists) {
|
||||||
var transpiled = await nodeServices.Invoke<string>("transpilation.js", fileInfo.PhysicalPath, requestPath);
|
var transpiled = await nodeServices.Invoke<string>("transpilation.js", fileInfo.PhysicalPath, requestPath);
|
||||||
await context.Response.WriteAsync(transpiled);
|
await context.Response.WriteAsync(transpiled);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not a JS file, or doesn't exist - let some other middleware handle it
|
// Not a JS file, or doesn't exist - let some other middleware handle it
|
||||||
await next.Invoke(context);
|
await next.Invoke(context);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add static files to the request pipeline.
|
// Add static files to the request pipeline.
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
|
|
||||||
// Add MVC to the request pipeline.
|
// Add MVC to the request pipeline.
|
||||||
app.UseMvc(routes =>
|
app.UseMvc(routes =>
|
||||||
{
|
{
|
||||||
routes.MapRoute(
|
routes.MapRoute(
|
||||||
name: "default",
|
name: "default",
|
||||||
template: "{controller}/{action?}/{id?}",
|
template: "{controller}/{action?}/{id?}",
|
||||||
defaults: new { controller="Home", action = "Index" });
|
defaults: new { controller="Home", action = "Index" });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { renderToString } from 'react-dom/server';
|
import { renderToString } from 'react-dom/server';
|
||||||
import { match, RouterContext } from 'react-router';
|
import { match, RouterContext } from 'react-router';
|
||||||
import createMemoryHistory from 'history/lib/createMemoryHistory';
|
|
||||||
import { routes } from './components/ReactApp';
|
import { routes } from './components/ReactApp';
|
||||||
React;
|
React;
|
||||||
|
|
||||||
@@ -14,7 +13,6 @@ export default function renderApp (params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Build an instance of the application
|
// Build an instance of the application
|
||||||
const history = createMemoryHistory(params.url);
|
|
||||||
const app = <RouterContext {...renderProps} />;
|
const app = <RouterContext {...renderProps} />;
|
||||||
|
|
||||||
// Render it as an HTML string which can be injected into the response
|
// Render it as an HTML string which can be injected into the response
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
"typings": "dist/Exports",
|
"typings": "dist/Exports",
|
||||||
"author": "Microsoft",
|
"author": "Microsoft",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"peerDependencies": {
|
"dependencies": {
|
||||||
"angular2": "2.0.0-beta.1",
|
"angular2": "2.0.0-beta.1",
|
||||||
"rxjs": "5.0.0-beta.0"
|
"rxjs": "5.0.0-beta.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,15 @@ using Microsoft.Extensions.PlatformAbstractions;
|
|||||||
|
|
||||||
namespace Microsoft.AspNet.NodeServices {
|
namespace Microsoft.AspNet.NodeServices {
|
||||||
public static class Configuration {
|
public static class Configuration {
|
||||||
private static string[] defaultWatchFileExtensions = new[] { ".js", ".jsx", ".ts", ".tsx", ".json", ".html" };
|
private readonly static string[] defaultWatchFileExtensions = new[] { ".js", ".jsx", ".ts", ".tsx", ".json", ".html" };
|
||||||
|
private readonly static NodeServicesOptions defaultOptions = new NodeServicesOptions {
|
||||||
|
HostingModel = NodeHostingModel.Http,
|
||||||
|
WatchFileExtensions = defaultWatchFileExtensions
|
||||||
|
};
|
||||||
|
|
||||||
|
public static void AddNodeServices(this IServiceCollection serviceCollection) {
|
||||||
|
AddNodeServices(serviceCollection, defaultOptions);
|
||||||
|
}
|
||||||
|
|
||||||
public static void AddNodeServices(this IServiceCollection serviceCollection, NodeServicesOptions options) {
|
public static void AddNodeServices(this IServiceCollection serviceCollection, NodeServicesOptions options) {
|
||||||
serviceCollection.AddSingleton(typeof(INodeServices), (serviceProvider) => {
|
serviceCollection.AddSingleton(typeof(INodeServices), (serviceProvider) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user