2017-02-22 9 views
0

이 기사 http://moduscreate.com/optimizing-react-es6-webpack-production-build/에 따라 프로덕션을위한 반응 프로젝트의 크기를 줄이려고합니다. 불행히도 일부 단계는 작동하지 않습니다. 그중 하나 인 webpack.DefinePlugin은 webpack.DefinePlugin이 정의 할 수없는 오류를 출력합니다. 어쩌면, 내가 개발 한 프로젝트를 구축했기 때문에 그것이 이제 생산으로 옮기고 싶다. 처음에는 프로덕션에서 프로젝트를 만들어야 했습니까? 아니면 누구든지 프로젝트의 크기를 줄이는 더 좋은 방법을 알고 있습니까? '싼 모듈 소스 맵'작동하지 않는, 전혀 프로젝트의 크기를 감소시키지 않았다webpack.DefinePlugin이 인식되지 않고 devtool : 'cheap-module-source-map이 작동하지 않습니다.

는 devtool는 또한

var path = require("path"); 
var webpack = require('webpack'); 

var DIST_DIR = path.resolve(__dirname, "dist"); 
var SRC_DIR = path.resolve(__dirname, "src"); 

var config = { 
    devtool: 'cheap-module-source-map', 
    entry: SRC_DIR + "/app/index.js", 
    output: { 
     path: DIST_DIR + "/app", 
     filename: "bundle.js", 
     publicPath: "/app/" 
    }, 
    plugins: [ 
     new webpack.DefinePlugin({ 
      'process.env': { 
       'NODE_ENV': JSON.stringify('production') 
      } 
     }) 
    ], 
    module: { 
     loaders: [ 
      { 
       test: /\.js?/, 
       include: SRC_DIR, 
       loader: "babel-loader", 

       query: { 
        presets: ["react", "es2015", "stage-2"] 
       } 
      } 
     ] 
    } 


}; 

module.exports = config; 

을 webpack.config.js.

답변

1

대신

... 

plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env.NODE_ENV': JSON.stringify('production') 
    }) 

... 

보십시오.

또한 devtool: 'cheap-module-source-map'은 번들의 크기를 줄이기위한 것이 아니며 source maps을 생성합니다.

+0

안녕하세요! 그것은 효과가 있었지만 또 다른 문제가 나타났습니다. webpack --progress -p 명령에서 webpack 할 때 bundle.js의 크기는 539kb이지만 npm 시작 명령에서 bundle.js 명령을 실행하면 다시 1.78MB가됩니다. 왜? 나는 못 잤어. 이 문제를 알고 계십니까? – Feruza

+0

그리고 하나 더 질문 webpack.config.production.js 같은 생산을위한 새로운 webpack 파일을 만들어야합니까? 아니면 불필요한가요? – Feruza

+0

여기에 "npm start"명령을 제공해 주시겠습니까? 또한 작업이 끝난 후 답변을 upvote/answer-answer 할 수 있다면 좋을 것입니다. 감사. dev/prod configs에 관해서는 일반적으로 둘 다 가지고 있거나 조건 논리가있는 환경을 원합니다. "환경이 개발자라면 다음과 같이하십시오. 그러나 2 개의 개별 구성 파일을 갖는 것이 더 관리하기 쉽습니다. – m1kael