Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React样板文件';s HMR在编辑依赖项库(节点模块)时非常慢_Reactjs_Performance_Webpack_Webpack Hmr_React Boilerplate - Fatal编程技术网

Reactjs React样板文件';s HMR在编辑依赖项库(节点模块)时非常慢

Reactjs React样板文件';s HMR在编辑依赖项库(节点模块)时非常慢,reactjs,performance,webpack,webpack-hmr,react-boilerplate,Reactjs,Performance,Webpack,Webpack Hmr,React Boilerplate,我使用的是在开发环境中利用HMR(热模块重新加载)的 但是,我还有一个自定义组件库,作为依赖项加载。它有大约20种化学成分。该库是一个UMD模块,我通过样板文件中的package.json将其作为依赖项加载。它也是由Webpack构建的,一个构建大约需要2秒 但是,在本地处理这两个项目时,我在样板项目中链接了库(使用“npm链接”),因此我可以看到最新的更改 现在,每当我对依赖项库中的任何地方进行更改时,HMR都会启动样板项目,这太棒了。但是,即使是最简单的更改(如CSS颜色),在样板项目中重建

我使用的是在开发环境中利用HMR(热模块重新加载)的

但是,我还有一个自定义组件库,作为依赖项加载。它有大约20种化学成分。该库是一个UMD模块,我通过样板文件中的package.json将其作为依赖项加载。它也是由Webpack构建的,一个构建大约需要2秒

但是,在本地处理这两个项目时,我在样板项目中链接了库(使用“npm链接”),因此我可以看到最新的更改

现在,每当我对依赖项库中的任何地方进行更改时,HMR都会启动样板项目,这太棒了。但是,即使是最简单的更改(如CSS颜色),在样板项目中重建Web包也需要大约20秒(!!!)的时间

每次重建依赖项时都会发生这种情况,因此当我进行微小更改时,20秒是非常有害的

有谁能告诉我如何缓解这段时间?我觉得我错过了什么。我正在运行样板文件的默认webpack配置,因为它是现成的

依赖项的webpack配置与样板配置非常相似,具有不同的输出:

  output: {
    path: __dirname + '/dist',
    filename: 'index.js',
    library: 'my-component-library',
    libraryTarget: 'umd',
    umdNamedDefine: true,
  },
babel和style Loader几乎相同


谢谢大家的建议。

为了回答我自己的问题,我做了以下几点:

内部/webpack/webpack.base.babel.js

@@ @@
    loaders: [{
      test: /\.js$/, // Transform all .js files required somewhere with Babel
      loader: 'babel-loader',
-      exclude: /node_modules/,
+      include: [
+        path.resolve(process.cwd(), 'app'),
+        path.resolve(process.cwd(), 'node_modules/mapbox-gl/js'),
+      ],
      query: options.babelQuery,
@@ @@
  resolve: {
    modules: ['app', 'node_modules'],
    extensions: [
      '.js',
      '.jsx',
      '.react.js',
    ],
    mainFields: [
      'browser',
      'jsnext:main',
      'main',
    ],
+    alias: {
+      'mapbox-gl$': path.join(__dirname, '../../node_modules/mapbox-gl/dist/mapbox-gl.js'),
+    },
},
package.json

    "env": {
      "production": {
-        "only": [
-          "app"
-        ],
        "plugins": [
          "transform-react-remove-prop-types",
          "transform-react-constant-elements",
          "transform-react-inline-elements"
        ]
      },