webpack模块加载器:在子文件夹中排除文件

时间:2017-07-31 16:17:45

标签: reactjs npm webpack babeljs

我有一个npm lib,并为它构建了一个示例。

项目看起来像

 react-outline
├─ example
│ └── webpack.config.js
│ └── .babelrc
│ └── index.js
├ index.jslib source 
└ README.md

用户将在“示例”文件夹中cd并运行npm start

示例/ index.js使用React但/index.js(lib)不使用。

  • 我通过网络包访问 lib >解决>别名

现在可以修复错误:Module build failed: Error: Couldn't find preset "react" relative to directory "/www/my-npm-lib"

webpack.config.js

var path = require("path");
module.exports = {
  target:"web",
  resolve:{
    alias:{
      'my-npm-lib':__dirname+'/../../index.js'
    }
  },
  module:{
      loaders:[{
                  test: /\.js$/,
                  loader:"babel-loader",
                  exclude:[path.resolve(__dirname,'/../../index.js'),"/node_modules/"],
                  query:{
                      presets:["react", "es2015"]
                  }
              }]
  }
};

.bablerc

{
  "presets": [
    [ "es2015"],
    "react"
  ],
  "env": {
      "test": {
        "presets": ["es2015","react"]
      }
  }
}

仅供参考:我正在使用React Storybook作为示例

1 个答案:

答案 0 :(得分:0)

exclude: /node_modules\/(?!(index)\/).*/