2017-02-01 2 views
0

В моем приложении-ответе, в первый раз я работал с «браузером» для компиляции файлов es6 на es5. Но когда я проверяю, что файл пакета имеет размер 1,3 МБ (так много), когда моя папка со всеми скриптами имеет 200 КБ. Я думаю, вероятно, что браузера: был в том числе кратным разным же сценариям. Это потому, что у меня есть (например) «config.js» и я включаю его на любой файл, который мне нужно сBundle Ошибка файла с webPack

import Config from .'/config.js'; 

Если я не делаю этого, приложение показывает ошибки, говоря, что запрос, что переменная в этом разделе. Затем я меняю свое управление с . Просматриваем до webpack. Я прошу об этом, потому что для меня все новое, и документы говорят, что webpack читает мои зависимости и пытается включить один раз в любой файл. Но мой файл пакета сохраняет размер 1.3mb.

Это мой холостые webpack.config.js

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

module.exports = { 
    entry: './js/src/index.js', 
    output: { path: __dirname, filename: 'bundle.js' }, 
    module: { 
     loaders: [ 
      { 
       test: /.jsx?$/, 
       loader: 'babel-loader', 
       exclude: /node_modules|libs/, //npm and bower_components(libs) 

       query: { 
        presets: ['es2015', 'react'] 
       } 
      } 
     ] 
    }, 
}; 

Это мой package.json, там вы можете увидеть browserify команды, что я был выполняющейся, прежде чем пытаться с WebPack (команда пуска).

{ 
    "name": "appname", 
    "version": "1.0.0", 
    "description": "app description", 
    "main": "js/dist/index.js", 
    "dependencies": { 
    "babelify": "^7.3.0", 
    "browserify": "^13.1.1", 
    "fetch": "^1.1.0", 
    "owl.carousel": "^2.2.0", 
    "react": "^15.4.2", 
    "react-dom": "^15.4.2", 
    "react-image-holder": "^2.0.1", 
    "react-owl-carousel": "^0.14.0", 
    "react-toastr": "^2.8.2", 
    "whatwg-fetch": "^2.0.1" 
    }, 
    "devDependencies": { 
    "babel": "^6.5.2", 
    "babel-cli": "^6.18.0", 
    "babel-core": "^6.22.1", 
    "babel-loader": "^6.2.10", 
    "babel-plugin-external-helpers": "^6.18.0", 
    "babel-plugin-transform-react-jsx": "^6.8.0", 
    "babel-preset-env": "^1.1.5", 
    "babel-preset-es2015": "^6.22.0", 
    "babel-preset-es2017": "^6.16.0", 
    "babel-preset-latest": "^6.16.0", 
    "babel-preset-react": "^6.22.0", 
    "babelify": "^7.3.0", 
    "browserify": "^13.3.0", 
    "envify": "^4.0.0", 
    "gulp": "^3.9.1", 
    "gulp-concat": "^2.6.1", 
    "gulp-concat-css": "^2.3.0", 
    "gulp-notify": "^3.0.0", 
    "gulp-uglify": "^2.0.1", 
    "gulp-uglifycss": "^1.0.6", 
    "jquery": "^3.1.1", 
    "jquery-ui": "^1.12.1", 
    "react": "^15.4.2", 
    "react-dom": "^15.4.2", 
    "react-redux": "^5.0.1", 
    "react-router": "^3.0.0", 
    "react-router-redux": "^4.0.7", 
    "redux": "^3.6.0", 
    "uglify": "^0.1.5", 
    "watchify": "^3.8.0", 
    "webpack": "^1.14.0", 
    "whatwg-fetch": "^2.0.1" 
    }, 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "watch-js": "NODE_ENV=production watchify assets/js/main.js -t babelify -t bulkify -o dist/js/app.js -v --full-path=false", 
    "start": "set NODE_ENV=production && watchify js/src/index.js -v -t [babelify --presets [env] ] -o js/dist/index.js", 
    "build": "browserify js/src/index.js -g [envify --NODE_ENV 'production'] -t [ babelify --presets [env] ] -t > js/dist/app.js" 
    }, 
    "keywords": [ 
    "app", 
    "jidapp" 
    ] 
+0

Есть ли 200kb без зависимостей в 'node_modules'? –

+0

Является ли 200kb папкой с моими кодами .jsx, без компиляции babel. Это мой код приложения. по этой причине я не понимаю, почему код компиляции имеет такой размер. – jrodriguez

ответ

0

Вы можете попробовать указать настройку devtool в вашем webpack.config.js. Вот некоторая информация о том, что делают различные настройки. https://webpack.js.org/configuration/devtool/ Для сборки сборки я обычно использую карту дешевых модулей-источников. В разработке я использую eval.

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

module.exports = { 
    devtool: 'cheap-module-source-map', 
    entry: './js/src/index.js', 
    output: { path: __dirname, filename: 'bundle.js' }, 
    module: { 
     loaders: [ 
     { 
     test: /.jsx?$/, 
     loader: 'babel-loader', 
     exclude: /node_modules|libs/, 
     query: { 
      presets: ['es2015', 'react'] 
     } 
     } 
     ] 
    }, 
}; 

Здесь вы также можете ознакомиться с другими плагинами для оптимизации веб-пакетов. https://github.com/webpack/docs/wiki/optimization

+0

Я положил его. но файл компиляции сохраняет размер. Я могу проверить файл .map, что некоторые файлы содержат несколько раз. (некоторые файлы 12 раз или некоторые подобные). Дефицитно это проблема, но я не знаю, как это исправить. Я пробовал включить «новый webpack.optimize.DedupePlugin()» Но ничего не происходит – jrodriguez

+0

Я не знаю, почему иногда комментирую, а позже я видел, что моего комментария здесь нет. Я скорректировал изменения, которые вы мне рекомендуете, я мог видеть в файле .map, что некоторые файлы появляются несколько раз. Может быть, это повторение кода в файле пакета? Я попытался использовать * optimize.DedupePlugin() *, но ничего не произошло. – jrodriguez

Смежные вопросы