From 3beb1982b2f2898f579822184fd54fbe17e7e7ee Mon Sep 17 00:00:00 2001 From: Zack Yang Date: Mon, 19 Dec 2016 21:06:13 +0800 Subject: [PATCH] fix(webpack): upgrade webapck --- .eslintrc | 33 ++++++++++++++++------ karma.conf.js | 13 ++++----- {app => src}/app.js | 0 {app => src}/app.scss | 0 {app => src}/app.test.js | 0 {app => src}/component/http.service.js | 0 {app => src}/component/http.spec.js | 0 {app => src}/component/index.js | 0 {app => src}/component/restful.provider.js | 0 {app => src}/component/restful.spec.js | 0 {app => src}/index.html | 0 webpack.build.js | 2 +- webpack.config.js | 14 ++++----- webpack.dev.js | 33 +++++++++++++++++----- webpack.test.js | 26 +++++++++++++---- 15 files changed, 84 insertions(+), 37 deletions(-) rename {app => src}/app.js (100%) rename {app => src}/app.scss (100%) rename {app => src}/app.test.js (100%) rename {app => src}/component/http.service.js (100%) rename {app => src}/component/http.spec.js (100%) rename {app => src}/component/index.js (100%) rename {app => src}/component/restful.provider.js (100%) rename {app => src}/component/restful.spec.js (100%) rename {app => src}/index.html (100%) diff --git a/.eslintrc b/.eslintrc index d6e724f..e8eb590 100644 --- a/.eslintrc +++ b/.eslintrc @@ -14,19 +14,34 @@ }, "globals": { "angular": true, - "FileSaver": true, "sinon": true, "expect": true, - "__DEV__": true, - "__TEST__": true, - "__RELEASE__": true, "__BASE_PATH__": true }, "rules": { - "indent": [ 2, 2 ], - "quotes": [ 2, "single", { "avoidEscape": true, "allowTemplateLiterals": true }], - "linebreak-style": [ 2, "unix" ], - "semi": [ 2, "always" ], + "indent": [ + "error", + 2, + { + "SwitchCase": 1 + } + ], + "quotes": [ + 2, + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": true + } + ], + "linebreak-style": [ + 2, + "unix" + ], + "semi": [ + 2, + "always" + ], "no-console": 0 } -} +} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 02165db..6a7f9e7 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,9 +1,6 @@ -// Karma configuration -'use strict'; - -var webpackConfig = require('./webpack.test'); -var test = process.env.NODE_ENV === 'test'; -var IS_TRAVIS = process.env.TRAVIS; +const webpackConfig = require('./webpack.test'); +const test = process.env.NODE_ENV === 'test'; +const IS_TRAVIS = process.env.TRAVIconst module.exports = function(config) { config.set({ @@ -44,7 +41,7 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ 'node_modules/jquery/dist/jquery.js', - 'app/app.test.js' + 'src/app.test.js' ], @@ -52,7 +49,7 @@ module.exports = function(config) { // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor // run the bundle through the webpack and sourcemap plugins preprocessors: { - 'app/app.test.js': [ 'webpack', 'sourcemap' ] + 'src/app.test.js': [ 'webpack', 'sourcemap' ] }, diff --git a/app/app.js b/src/app.js similarity index 100% rename from app/app.js rename to src/app.js diff --git a/app/app.scss b/src/app.scss similarity index 100% rename from app/app.scss rename to src/app.scss diff --git a/app/app.test.js b/src/app.test.js similarity index 100% rename from app/app.test.js rename to src/app.test.js diff --git a/app/component/http.service.js b/src/component/http.service.js similarity index 100% rename from app/component/http.service.js rename to src/component/http.service.js diff --git a/app/component/http.spec.js b/src/component/http.spec.js similarity index 100% rename from app/component/http.spec.js rename to src/component/http.spec.js diff --git a/app/component/index.js b/src/component/index.js similarity index 100% rename from app/component/index.js rename to src/component/index.js diff --git a/app/component/restful.provider.js b/src/component/restful.provider.js similarity index 100% rename from app/component/restful.provider.js rename to src/component/restful.provider.js diff --git a/app/component/restful.spec.js b/src/component/restful.spec.js similarity index 100% rename from app/component/restful.spec.js rename to src/component/restful.spec.js diff --git a/app/index.html b/src/index.html similarity index 100% rename from app/index.html rename to src/index.html diff --git a/webpack.build.js b/webpack.build.js index d4661c2..3c3b356 100644 --- a/webpack.build.js +++ b/webpack.build.js @@ -27,7 +27,7 @@ config.externals = { }; config.module.rules = [ - {test: /\.js$/, loader: 'ng-annotate-loader', exclude: /(node_modules)/, enforce: 'post'}, + {test: /\.js$/, use: 'ng-annotate-loader', exclude: /(node_modules)/, enforce: 'post'}, { test: /\.scss$/, loader: ExtractTextPlugin.extract({ diff --git a/webpack.config.js b/webpack.config.js index 353fc07..cbfe1a6 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,7 +4,7 @@ const ProgressBarPlugin = require('progress-bar-webpack-plugin'); const LodashModuleReplacementPlugin = require('lodash-webpack-plugin'); const NODE_ENV = process.env.NODE_ENV; const nodeRoot = path.join(__dirname, 'node_modules'); -const appRoot = path.join(__dirname, 'app'); +const appRoot = path.join(__dirname, 'src'); const config = { context: appRoot, output: { @@ -23,18 +23,18 @@ const config = { }, module: { rules: [ - { test: /\.js$/, loader: 'eslint-loader', exclude: /node_modules/, enforce: 'pre' }, - {test: /\.js$/, loader: 'babel-loader?cacheDirectory', exclude: /(node_modules)/}, - { test: /\.html$/, loader: 'ng-cache-loader?prefix=[dir]/[dir]', exclude: [/node_modules/, path.join(__dirname, '/app/index.html')] } + { test: /\.js$/, use: 'eslint-loader', exclude: /node_modules/, enforce: 'pre' }, + {test: /\.js$/, use: 'babel-loader?cacheDirectory', exclude: /(node_modules)/}, + { test: /\.html$/, use: 'ng-cache-loader?prefix=[dir]/[dir]', exclude: [/node_modules/, path.join(__dirname, '/src/index.html')] } ] }, plugins: [ new ProgressBarPlugin(), new LodashModuleReplacementPlugin, new webpack.DefinePlugin({ - __TEST__: 'test' === NODE_ENV, - __DEV__: 'development' === NODE_ENV, - __RELEASE__: 'production' === NODE_ENV + 'proces.env': { + 'NODE_ENV': JSON.stringify(NODE_ENV || 'development') + } }) ] }; diff --git a/webpack.dev.js b/webpack.dev.js index a41bc62..aa654c0 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -4,7 +4,10 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); const bourbon = require('node-bourbon').includePaths; const config = require('./webpack.config.js'); -config.devtool = 'eval'; +config.devtool = 'cheap-module-eval-source-map'; +config.performance = { + hints: false +}; config.entry = { 'sanji-ui': [ 'webpack/hot/dev-server', @@ -13,12 +16,28 @@ config.entry = { ] }; config.module.rules = [ - {test: /\.js$/, loader: 'ng-annotate-loader', exclude: /(node_modules)/, enforce: 'post'}, - {test: /\.scss/, loader: 'style-loader!css-loader!postcss-loader!sass-loader?includePaths[]=' + bourbon}, - {test: /\.css$/, loader: 'style-loader!css-loader!postcss-loader?browsers=last 2 versions'}, - {test: /\.(png|jpg|gif|jpeg)$/, loader: 'url-loader?limit=8192', exclude: /node_modules/}, - {test: /\.(woff|woff2)$/, loader: 'url-loader?limit=10000&minetype=application/font-woff', exclude: /node_modules/}, - {test: /\.(ttf|eot|svg)$/, loader: 'file-loader', exclude: /node_modules/} + {test: /\.js$/, use: 'ng-annotate-loader', exclude: /(node_modules)/, enforce: 'post'}, + { + test: /\.scss/, + use: ['style-loader', 'css-loader', 'postcss-loader', { + loader: 'sass-loader', + options: { + includePaths: bourbon + } + }] + }, + { + test: /\.css$/, + use: ['style-loader', 'css-loader', { + loader: 'postcss-loader', + options: { + browsers: 'last 2 versions' + } + }] + }, + {test: /\.(png|jpg|gif|jpeg)$/, use: 'url-loader?limit=8192', exclude: /node_modules/}, + {test: /\.(woff|woff2)$/, use: 'url-loader?limit=10000&minetype=application/font-woff', exclude: /node_modules/}, + {test: /\.(ttf|eot|svg)$/, use: 'file-loader', exclude: /node_modules/} ].concat(config.module.rules); config.plugins.push( diff --git a/webpack.test.js b/webpack.test.js index d800891..479cc69 100644 --- a/webpack.test.js +++ b/webpack.test.js @@ -12,11 +12,27 @@ config.entry = {}; config.output = {}; config.module.rules = [ - {test: /\.scss/, loader: 'style-loader!css-loader!postcss-loader!sass-loader?includePaths[]=' + bourbon}, - {test: /\.css$/, loader: 'style-loader!css-loader!postcss-loader'}, - {test: /\.(png|jpg|gif|jpeg)$/, loader: 'url-loader?limit=8192'}, - {test: /\.(woff|woff2)$/, loader: 'url-loader?limit=10000&minetype=application/font-woff'}, - {test: /\.(ttf|eot|svg)$/, loader: 'file-loader'} + { + test: /\.scss/, + use: ['style-loader', 'css-loader', 'postcss-loader', { + loader: 'sass-loader', + options: { + includePaths: bourbon + } + }] + }, + { + test: /\.css$/, + use: ['style-loader', 'css-loader', { + loader: 'postcss-loader', + options: { + browsers: 'last 2 versions' + } + }] + }, + {test: /\.(png|jpg|gif|jpeg)$/, use: 'url-loader?limit=8192'}, + {test: /\.(woff|woff2)$/, use: 'url-loader?limit=10000&minetype=application/font-woff'}, + {test: /\.(ttf|eot|svg)$/, use: 'file-loader'} ].concat(config.module.rules); config.plugins.push(