
Bohdan
23.10.2017
12:35:05
'use strict';
const webpack = require('webpack');
const loaders = require('./loaders');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const BrowserSyncPlugin = require('browser-sync-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const FaviconsWebpackPlugin = require('favicons-webpack-plugin');
const copyConfig = require('./copy-webpack-plugin.config');
const path = require('path');
const config = {
cache: true,
watch: true,
context: path.resolve(__dirname, '../src'),
entry: {
app: ['./ts/bootstrap.ts'],
vendor: ['./ts/vendor.ts']
},
output: {
filename: 'app.bundle.js',
path: path.resolve(__dirname, '../dist'),
chunkFilename: '[id].chunk.js',
},
devtool: 'cheap-module-source-map',
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json', '.css', '.styl', '.pug']
},
node: {
fs: 'empty',
net: 'empty',
tls: 'empty'
},
plugins: [
new HtmlWebpackPlugin({
template: './index.pug',
inject: 'body',
hash: true
}),
new BrowserSyncPlugin({
host: 'localhost',
port: 8080,
server: {
baseDir: 'dist'
},
ui: false,
online: false,
notify: false
}),
new ExtractTextPlugin('[name].styles.css'),
copyConfig,
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: 'vendor.bundle.js'
}),
new FaviconsWebpackPlugin({
logo: './tile.png',
persistentCache: true,
icons: {
android: false,
appleIcon: false,
appleStartup: false,
coast: false,
favicons: true,
firefox: true,
opengraph: false,
twitter: false,
yandex: false,
windows: false
}
})
],
module: {
rules: loaders
}
};
module.exports = config;
const loaders = [{
test: /\.ts(x?)$/,
use: 'awesome-typescript-loader'
}, {
test: /\.json$/,
use: 'json-loader'
}, {
test: /\.css$/,
use: ['style-loader', 'css-loader']
}, {
test: /\.styl$/,
use: ['style-loader', 'css-loader', 'stylus-loader'],
}, {
test: /\.pug$/,
use: ['raw-loader', 'pug-html-loader']
}, {
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: 'url-loader?limit=10000&mimetype=yokes/font-woff'
}, {
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
use: 'file-loader'
}, {
test: /\.(png|jpg|jpeg|gif|svg|ico)$/,
use: 'url-loader'
}];
module.exports = loaders;

Petro
23.10.2017
14:54:12
Здраствуйте. Нуждаюсь в помощи. Использую Restangular. Меня интересует интерцептор. В 50% случаев, когда получаю статус 404 нужно сделать редирект пользователя, а в других 50% не нужно делать редиректа. Есть у кого идея? Или может кто раньше чтото подобное делал
добавил в интерцепторе редирект, но щас это летит даже в тех случаях, когда это не нужно
возможно получиться както выключать интерцептор на некоторые вопросы?

Bohdan
23.10.2017
15:30:32
или, на крайний случай, мокай непосредственно $http объект и тестируй, по примеру моей архитектуры, слой serviceAPI.
let contactService: ContactService;
beforeEach(angular.mock.module('contacts', ($provide: any) => {
contactService = {};
$provide.constant('npContactService', contactService);
}));
а потом как нужно будет в тесте проганяй
contactService['getMyContacts'] = jasmine.createSpy('contactService.getMyContacts').and.returnValue(
Observable.of(returnObject)
);
expect(contactService['getMyContacts']).toHaveBeenCalledWith({getAddress: true}, null, 1, 10);