Skip to content

Commit 0a851d6

Browse files
committed
fix(build): re-add support for sourceDir
1 parent 18318a2 commit 0a851d6

9 files changed

+37
-25
lines changed

addon/ng2/blueprints/ng2/files/__path__/test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Promise.all([
2929
);
3030
});
3131

32-
let testContext: any = require.context('../src', true, /\.spec\.ts/);
32+
let testContext: any = require.context('./', true, /\.spec\.ts/);
3333
function requireAll(requireContext: any) {
3434
return requireContext.keys().map(requireContext);
3535
}

addon/ng2/blueprints/ng2/files/__path__/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"compilerOptions": {
3-
"baseUrl":"./src",
3+
"baseUrl":"./",
44
"declaration": false,
55
"emitDecoratorMetadata": true,
66
"experimentalDecorators": true,

addon/ng2/models/webpack-build-common.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
import * as webpack from 'webpack';
22
import {LoaderConfig, PathsPlugin} from '../utilities/ts-path-mappings-webpack-plugin';
3+
import { CliConfig } from './config';
34

45
const path = require('path');
56
const ForkCheckerPlugin = require('awesome-typescript-loader').ForkCheckerPlugin;
67
const CopyWebpackPlugin = require('copy-webpack-plugin');
78
const HtmlWebpackPlugin = require('html-webpack-plugin');
89

910
export function getWebpackCommonConfig(projectRoot: string) {
11+
const sourceDir = CliConfig.fromProject().defaults.sourceDir;
12+
1013
const awesomeTypescriptLoaderConfig: LoaderConfig | any = {
1114
useWebpackText: true,
1215
useForkChecker: true,
13-
tsconfig: path.resolve(projectRoot, './src/tsconfig.json')
16+
tsconfig: path.resolve(projectRoot, `./${sourceDir}/tsconfig.json`)
1417
}
1518

1619
return {
1720
devtool: 'inline-source-map',
1821
resolve: {
1922
extensions: ['', '.ts', '.js'],
20-
root: path.resolve(projectRoot, './src'),
23+
root: path.resolve(projectRoot, `./${sourceDir}`),
2124
moduleDirectories: ['node_modules'],
2225
plugins: [
2326
new PathsPlugin(awesomeTypescriptLoaderConfig);
2427
]
2528
},
2629
context: path.resolve(__dirname, './'),
2730
entry: {
28-
main: [path.resolve(projectRoot, './src/main.ts')],
29-
vendor: path.resolve(projectRoot, './src/vendor.ts'),
30-
polyfills: path.resolve(projectRoot, './src/polyfills.ts')
31+
main: [path.resolve(projectRoot, `./${sourceDir}/main.ts`)],
32+
vendor: path.resolve(projectRoot, `./${sourceDir}/vendor.ts`),
33+
polyfills: path.resolve(projectRoot, `./${sourceDir}/polyfills.ts`)
3134
},
3235
output: {
3336
path: path.resolve(projectRoot, './dist'),
@@ -70,7 +73,7 @@ export function getWebpackCommonConfig(projectRoot: string) {
7073
plugins: [
7174
new ForkCheckerPlugin(),
7275
new HtmlWebpackPlugin({
73-
template: path.resolve(projectRoot, 'src/index.html'),
76+
template: path.resolve(projectRoot, `./${sourceDir}/index.html`),
7477
chunksSortMode: 'dependency'
7578
}),
7679
new webpack.optimize.CommonsChunkPlugin({

addon/ng2/models/webpack-build-development.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { CliConfig } from './config';
12
const path = require('path')
23

34
export const getWebpackDevConfigPartial = function(projectRoot: string) {
@@ -13,7 +14,7 @@ export const getWebpackDevConfigPartial = function(projectRoot: string) {
1314
tslint: {
1415
emitErrors: false,
1516
failOnHint: false,
16-
resourcePath: path.resolve(projectRoot, './src')
17+
resourcePath: path.resolve(projectRoot, `./${CliConfig.fromProject().defaults.sourceDir}`)
1718
},
1819
node: {
1920
global: 'window',

addon/ng2/models/webpack-build-mobile.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@ import * as path from 'path';
33
import * as OfflinePlugin from 'offline-plugin';
44
import * as CopyWebpackPlugin from 'copy-webpack-plugin';
55
import { PrerenderWebpackPlugin } from '../utilities/prerender-webpack-plugin.ts';
6+
import { CliConfig } from './config';
67

78
export const getWebpackMobileConfigPartial = function (projectRoot: string) {
9+
const sourceDir = CliConfig.fromProject().defaults.sourceDir;
10+
811
return {
912
plugins: [
1013
new CopyWebpackPlugin([
11-
{from: path.resolve(projectRoot, './src/icons'), to: path.resolve(projectRoot, './dist/icons')},
12-
{from: path.resolve(projectRoot, './src/manifest.webapp'), to: path.resolve(projectRoot, './dist')}
14+
{from: path.resolve(projectRoot, `./${sourceDir}/icons`), to: path.resolve(projectRoot, './dist/icons')},
15+
{from: path.resolve(projectRoot, `./${sourceDir}/manifest.webapp`), to: path.resolve(projectRoot, './dist')}
1316
]),
1417
new PrerenderWebpackPlugin({
1518
templatePath: 'index.html',
16-
configPath: path.resolve(projectRoot, './src/main-app-shell.ts'),
17-
appPath: path.resolve(projectRoot, './src')
19+
configPath: path.resolve(projectRoot, `./${sourceDir}/main-app-shell.ts`),
20+
appPath: path.resolve(projectRoot, `./${sourceDir}`)
1821
})
1922
]
2023
}

addon/ng2/models/webpack-build-production.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as webpack from 'webpack';
2+
import { CliConfig } from './config';
23

34
const path = require('path');
45
const webpackMerge = require('webpack-merge'); // used to merge webpack configs
@@ -36,7 +37,7 @@ export const getWebpackProdConfigPartial = function(projectRoot: string) {
3637
tslint: {
3738
emitErrors: true,
3839
failOnHint: true,
39-
resourcePath: path.resolve(projectRoot, './src')
40+
resourcePath: path.resolve(projectRoot, `./${CliConfig.fromProject().defaults.sourceDir}`)
4041
},
4142
htmlLoader: {
4243
minimize: true,

addon/ng2/models/webpack-build-test.ts

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
import * as webpack from 'webpack';
2+
import { CliConfig } from './config';
23

34
const path = require('path');
45

56
export const getWebpackTestConfig = function(projectRoot: string) {
7+
const sourceDir = CliConfig.fromProject().defaults.sourceDir;
8+
69
return {
710
devtool: 'inline-source-map',
811
context: path.resolve(__dirname, './'),
912
resolve: {
1013
extensions: ['', '.ts', '.js'],
11-
root: path.resolve(projectRoot, './src')
14+
root: path.resolve(projectRoot, `./${sourceDir}`)
1215
},
1316
entry: {
14-
test: path.resolve(projectRoot, './src/test.ts')
17+
test: path.resolve(projectRoot, `./${sourceDir}/test.ts`)
1518
},
1619
output: {
1720
path: './dist.test',
@@ -43,7 +46,7 @@ export const getWebpackTestConfig = function(projectRoot: string) {
4346
loader: 'awesome-typescript-loader',
4447
query: {
4548
useWebpackText: true,
46-
tsconfig: path.resolve(projectRoot, './src/tsconfig.json'),
49+
tsconfig: path.resolve(projectRoot, `./${sourceDir}/tsconfig.json`),
4750
module: "commonjs",
4851
target: "es5",
4952
useForkChecker: true,
@@ -62,7 +65,7 @@ export const getWebpackTestConfig = function(projectRoot: string) {
6265
{ test: /\.less$/, loaders: ['raw-loader', 'postcss-loader', 'less-loader'] },
6366
{ test: /\.scss$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] },
6467
{ test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000'},
65-
{ test: /\.html$/, loader: 'raw-loader', exclude: [path.resolve(projectRoot, 'src/index.html')] }
68+
{ test: /\.html$/, loader: 'raw-loader', exclude: [path.resolve(projectRoot, `./${sourceDir}/index.html`)] }
6669
],
6770
postLoaders: [
6871
{
@@ -77,7 +80,7 @@ export const getWebpackTestConfig = function(projectRoot: string) {
7780
tslint: {
7881
emitErrors: false,
7982
failOnHint: false,
80-
resourcePath: 'src'
83+
resourcePath: `./${sourceDir}`
8184
},
8285
node: {
8386
global: 'window',

addon/ng2/tasks/serve-webpack.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {webpackDevServerOutputOptions} from '../models/';
22
import {NgCliWebpackConfig} from '../models/webpack-config';
33
import {ServeTaskOptions} from '../commands/serve';
4+
import { CliConfig } from '../models/config';
45

56
const path = require('path');
67
const chalk = require('chalk');
@@ -32,7 +33,7 @@ module.exports = Task.extend({
3233
}));
3334

3435
const webpackDevServerConfiguration: IWebpackDevServerConfigurationOptions = {
35-
contentBase: path.resolve(this.project.root, './src'),
36+
contentBase: path.resolve(this.project.root, `./${CliConfig.fromProject().defaults.sourceDir}`),
3637
historyApiFallback: true,
3738
stats: webpackDevServerOutputOptions,
3839
inline: true,

addon/ng2/tasks/test.js renamed to addon/ng2/tasks/test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
/* jshint node: true */
2-
'use strict';
1+
import { CliConfig } from '../models/config';
32

43
var Promise = require('ember-cli/lib/ext/promise');
54
var Task = require('ember-cli/lib/models/task');
@@ -13,8 +12,9 @@ function requireDependency(root, moduleName) {
1312
return require(path.join(root, 'node_modules', moduleName, main));
1413
}
1514

16-
module.exports = Task.extend({
15+
module.exports = Task.extend({
1716
run: function (options) {
17+
const sourceDir = CliConfig.fromProject().defaults.sourceDir;
1818
var projectRoot = this.project.root;
1919
return new Promise((resolve) => {
2020

@@ -35,8 +35,8 @@ module.exports = Task.extend({
3535
// Add those details here.
3636

3737
// Single test entry file. Will run the test.ts bundle and track it.
38-
options.files = [{ pattern: './src/test.ts', watched: false }];
39-
options.preprocessors = { './src/test.ts': ['webpack','sourcemap'] };
38+
options.files = [{ pattern: `./${sourceDir}/test.ts`, watched: false }];
39+
options.preprocessors = { `./${sourceDir}/test.ts`: ['webpack','sourcemap'] };
4040
options.webpack = webpackTestConfig(projectRoot);
4141
options.webpackMiddleware = {
4242
noInfo: true, // Hide webpack output because its noisy.

0 commit comments

Comments
 (0)