2017-11-24 18 views
0

원격 서버의 도커 빌드 프로세스 내에 빌드해야하므로 모든 출력 메시지가 여유 채널에서 인쇄됩니다. 배포 프로세스가 서버에서 중지되었지만 긴 출력 메시지 이후에 어떤 부분이 잘못되었는지 확인할 수 없습니다. 옵션의 숫자가Webpack은`stats : false`를 컴파일 할 때 많은 양의 메시지를 출력합니다.

'use strict'; 
const path = require('path'); 
const glob = require('glob'); 
const webpack = require('webpack'); 
const OptimizeJsPlugin = require('optimize-js-plugin'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 
const LiveReloadPlugin = require('webpack-livereload-plugin'); 

const configs = [{ 
    entry: { 
     // 'main': './scripts/boot.aot.ts', 
     'jit': './scripts/boot.jit.ts', 
     // 'boot.common': './scripts/boot.common.ts' 
    }, 
    context: path.join(process.cwd(), '.'), 
    output: { 
     path: path.join(process.cwd(), 'public-html/dist'), 
     filename: '[name].js' 
    }, 
    module: { 
     rules: [{ 
      test: /\.ts$/, 
      use: ['awesome-typescript-loader', 'angular2-template-loader'] 
     }, { 
      test: /\.html$/, 
      use: 'html-loader?minimize=false' 
     }] 
    }, 
    plugins: [ 
     new webpack.ProgressPlugin(), 
     new webpack.ContextReplacementPlugin(
      // The (\\|\/) piece accounts for path separators in *nix and Windows 
      /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, 
      path.join(process.cwd(), '.') 
     ), 
     new webpack.ProvidePlugin({ 
      $: "jquery", 
      jQuery: "jquery", 
      "window.jQuery": "jquery" 
     }) 
    ], 
    resolve: { 
     modules: [ 
      'node_modules', 
      path.resolve(process.cwd(), '.') 
     ], 
     alias: { 
      'jquery': require.resolve('jquery'), 
     }, 
     extensions: ['.ts', '.js'] 
    }, 
    stats: false, 
    performance: { 
     hints: false 
    } 
}, { 
    name: 'styles', 
    entry: { 
     'main': './styles/layout.scss', 
    }, 
    output: { 
     path: path.join(process.cwd(), 'public-html/dist'), 
     filename: '[name].js', 
    }, 
    module: { 
     rules: [ 
      { 
       test: /\.scss$/, 
       use: ExtractTextPlugin.extract({ 
        fallback: 'style-loader', 
        use: [ 
         'css-loader?minimize=true!', 
         { 
          loader: 'sass-loader', 
          options: { 
           // Special config for Material Component SCSS importing 
           includePaths: ['node_modules'].map((d) => { 
            return path.join(__dirname, d); 
           }) 
          } 
         } 
        ] 
       }), 
      }, 
      { test: /\.css$/, loader: 'style-loader!css-loader?minimize=true' }, 
      { test: /\.(gif|png|jpe?g)$/i, loader: 'file-loader?name=dist/images/[name].[ext]' }, 
      { test: /\.woff2?$/, loader: 'url-loader?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff' }, 
      { test: /\.(ttf|eot|svg)$/, loader: 'file-loader?name=fonts/[name].[ext]' }, 
     ], 
    }, 
    plugins: [ 
     new ExtractTextPlugin({ 
      filename: '[name].css', 
     }), 
     new LiveReloadPlugin() 
    ], 
}]; 

if (process.env.NODE_ENV !== 'production') { 
    configs[0].devtool = false; 
    // 'source-map'; 
    configs[0].plugins = configs[0].plugins.concat([ 
     new webpack.DefinePlugin({ 
      'WEBPACK_ENV': '"dev"' 
     }) 
    ]); 
} else { 
    configs[0].devtool = false; 
    configs[0].plugins = configs[0].plugins.concat([ 
     new webpack.optimize.UglifyJsPlugin({ 
      compress: { 
       screw_ie8: true, 
       warnings: false, 
      }, 
      comments: false, 
      sourceMap: false, 
     }), 
     new OptimizeJsPlugin({ 
      sourceMap: false, 
     }), 
     new webpack.DefinePlugin({ 
      WEBPACK_ENV: '"production"', 
     }), 
    ]); 
} 

module.exports = configs; 

그리고이 webpack stats에 따르면

{ 
    "compilerOptions": { 
     "baseUrl": "./", 
     "target": "es5", 
     "module": "es2015", 
     "moduleResolution": "node", 
     "declaration": true, 
     "noImplicitAny": false, 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "outDir": "./dist", 
     "rootDir": "./", 
     "skipLibCheck": true, 
     "typeRoots": [ 
      "./node_modules/@types", 
      "./typings" 
     ], 
     "types": [ 
      "node", 
      "jquery", 
      "gapi", 
      "gapi.auth2" 
     ], 
     "lib": [ 
      "dom", 
      "es2015" 
     ] 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "files": [ 
     "./typings/hb-ng2-sdk.d.ts", 
     "./scripts/module.ts" 
    ], 
    "exclude": [ 
     "node_modules", 
     "dist", 
     "**/*.ngfactory.ts", 
     "**/*.shim.ts" 
    ], 
    "awesomeTypescriptLoaderOptions": { 
     "useBabel": true, 
     "useCache": true, 
     "silent": true 
    }, 
    "angularCompilerOptions": { 
     "genDir": "./aot", 
     "skipMetadataEmit" : false, 
     "entryModule": "scripts/module#AppModule" 
    } 
} 
+0

에 콘솔에 설정 될 것이다 당신이 개발 모드에서만 오류를 확인해야합니까? –

+0

어떤 웹팩 버전을 사용하고 있습니까? – brandNew

+0

3.8.1 올바르게 기억하는 경우 – tom10271

답변

0

을 tsconfig.js : NODE_ENV=production node_modules/.bin/webpack --config webpack.config.js --hide-modules

그리고 설정 : 나는 그것을

다음

을 숨길 필요하면 명령입니다 번들링 중에 표시되는 정보를 정확하게 제어하려면 stats을 제공 할 수 있습니다. 나는 당신이 수도 당신은 내가 생각하는 오류 정보를보고 싶다면 그렇게

stats: "none" 

처럼 아무것도 표시하기 때문에 당신이 stats에 사용하는 것이 옵션이 none 것보고 싶어하지 않는다는 것입니다 가정입니다 원하는, 당신은이 같은 errors-only 값을 사용합니다 : 당신이 chunks없이 단지 bundle.js 정보를보고 싶은 경우에 당신이 할 수있는

stats: "errors-only" 

stats: { chunks: false } 

은 다음

stats: { modules: false } 

난 정말 당신이 "침묵"어떤 종류의 당신의 웹팩에서 좋아하지만, 설정 파일에서 판단하는 것입니다 확실하지 않다 할 것 내장 모듈에 대한 정보를 사용하지 않으려면, 당신은하지에 보인다 첫 번째 옵션이 해결책이 될 수있는 다른 것을 원하면 다른 해결책을 시도하십시오. 물론 더 정밀도를 원하면 here을보십시오.

는 위의 문제를 해결할 것 같아요 모든해야 주위 작업 후 최대 모듈의 출력이 제로

stats: { maxModules: 0 } 
+1

거짓은 "없음"의 별칭입니다. – tom10271

+0

음 ... 네, 맞아요. – brandNew

+0

나는 당신 주위의 일이'maxModules : 0'을 할 수 있다고 생각합니다. 너 그거 해봤 니? – brandNew