为什么即使我排除了node_modules,Webpack命令也需要这么长时间?

时间:2016-05-31 06:52:00

标签: reactjs webpack package.json

我一直在尝试从ReactJS Tutorials学习React和Webpack。 我的问题是当我从所有文件的顶级目录中运行webpack时,通常需要 62392ms 。但是,在教程中,他需要 1394ms 。我已经知道排除应该有助于延长性能时间,但我已经排除了 node_modules 。我尝试将加载程序切换为 babel ,这使我的网络包时间缩短到 13183ms ,但这似乎仍然非常慢,特别是当它只转换一个文件时( client.js )。是否有人知道为什么运行webpack命令是如此之慢,因为大多数其他stackoverflow答案似乎指向包含/排除路径/目录并且我已经完成了?

我的文件结构如下:

node_modules
src
->  js
->->    client.js
->  client.min.js
->  index.html
.gitignore
package.json
webpack.config.js

我的webpack.config.js看起来像:

var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var path = require('path');

module.exports = {
  context: __dirname + "/src",
  devtool: debug ? "inline-sourcemap" : null,
  entry: "./js/client.js",
  module: {
    loaders: [
      {
        target: 'node',
        test: /\.jsx?$/,
        //include: [path.resolve(__dirname, "./src")],
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
          plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy'],
        }
      }
    ]
  },
  output: {
    path: __dirname + "/src/",
    filename: "client.min.js"
  },
  plugins: debug ? [] : [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
  ],
};

我的package.json看起来像:

{
  "name": "module-loaders",
  "version": "1.0.0",
  "description": "Learning React and Webpack through LearnCode.academy",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/dustinchang/React_Learning_LearnCode.Academy.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/dustinchang/React_Learning_LearnCode.Academy/issues"
  },
  "homepage": "https://github.com/dustinchang/React_Learning_LearnCode.Academy#readme",
  "dependencies": {
    "babel-core": "^6.9.1",
    "babel-loader": "^6.2.0",
    "babel-plugin-add-module-exports": "^0.1.2",
    "babel-plugin-react-html-attrs": "^2.0.0",
    "babel-plugin-transform-class-properties": "^6.3.13",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-react": "^6.3.13",
    "babel-preset-stage-0": "^6.3.13",
    "react": "^0.14.6",
    "react-dom": "^0.14.6",
    "webpack": "^1.13.1",
    "webpack-dev-server": "^1.14.1"
  }
}

我非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

在Windows上,您可以激活缓存目录babel选项](https://github.com/babel/babel-loader#options)。重新加载时节省了很多时间。