2017-04-16 13 views
1

私は複数のエントリーポイントを持つアプリケーションを構築しています。これは、プラグイン/サイドローディングのリアクションアーキテクチャです。brunch.io convention.ignoredはnode_modulesを尊重しません

私はapp.jsとvendor.jsにコンパイルするベースの反応アプリを持っています。この問題は、セカンダリプロジェクトのテーマであり、同じ依存関係の一部にバンドルされています。最も顕著に反応し、反応する。私は、特定のnode_modulesとその依存関係を無視するようにbrunchに指示するために、conventions.ignoredを使用できるようにしたいと考えています。正規表現にかかわらず、私はconvention.ignsに入れましたが、theme_vendor.jsバンドルにはまだ反応し、反応します。以下の設定を参照してください。

const {theme_name} = require('./package.json'); 
module.exports = { 
    sourceMaps: 'inline', 
    files: { 
     javascripts: { 
      joinTo: { 
       "theme.js": [ 
        /^theme/, 
       ], 
       "theme_vendor.js": [ 
        /^(?!theme)/, 
       ], 
      } 
     }, 
     stylesheets: { 
      joinTo: { 
       'theme.css': ["theme/config/styles/index.scss"], 
       'theme_ie11.css': ["theme/config/styles/ie.scss"], 
      } 
     } 
    }, 
    conventions: { 
     ignored: [ 
      /\/_/, 
      "node_modules\/react", 
      "node_modules\/react-dom", 
     ], 
    }, 
    plugins: { 
     babel: { 
      presets: ['es2015', 'stage-0', 'react'], 
      plugins: [ 
       ['transform-runtime', { 
        polyfill: false, 
        regenerator: true 
       }] 
      ], 
     }, 
     sass: { 
      options: { 
       includePaths: [], 
       precision: 15 
      }, 
      mode: 'native', 
      sourceMapEmbed: true, 
      debug: 'comments' 
     }, 
     copycat: { 
      "fonts/slick-carousel": ["node_modules/slick-carousel/slick/fonts"], 
      "img/slick-carousel": ["node_modules/slick-carousel/slick/ajax-loader.gif"], 
      "": ["theme/theme_header.tmpl", "theme/theme_body.tmpl", "theme/theme_footer.tmpl"], 
     } 
    }, 
    modules: { 
     nameCleaner: path => path.replace('', theme_name + '/') 
    }, 
    notifications: false, 
    hot: false, 
    paths: { 
     public: '../', 
     watched: [ 
      'theme', 
      'initialize.js', 
     ] 
    }, 
    overrides: { 
     production: { 
      optimize: true, 
      sourceMaps: false, 
      plugins: { 
       autoReload: { 
        enabled: false 
       } 
      }, 
      paths: { 
       // public: "dist/" 
      } 
     } 
    } 
}; 

私が近くで達成できる唯一の方法は、joinToの否定を使用することです。以下を参照してください。

javascripts: { 
      joinTo: { 
       "theme.js": [ 
        /^theme/, 
       ], 
       "theme_vendor.js": [ 
        /^(?!theme|node_modules\/react|node_modules\/react-dom)/, 
       ], 
      } 
     }, 

ありがとうございました。 その他の情報:

"dependencies": { 
    "react-click-outside": "^2.2.0", 
    "react-image-gallery": "^0.7.15", 
    "react-slick": "^0.14.7", 
    "slick-carousel": "^1.6.0" 
    }, 
    "devDependencies": { 
    "auto-reload-brunch": "^2", 
    "babel-brunch": "~6.0.0", 
    "babel-plugin-transform-runtime": "^6.23.0", 
    "babel-preset-es2015": "^6.24.0", 
    "babel-preset-react": "~6.22", 
    "babel-preset-stage-0": "^6.22.0", 
    "brunch": "^2", 
    "clean-css-brunch": "^2", 
    "copycat-brunch": "^1.1.0", 
    "hmr-brunch": "^0.1", 
    "redux-devtools": "^3.3.2", 
    "redux-devtools-dock-monitor": "^1.1.1", 
    "redux-devtools-log-monitor": "^1.2.0", 
    "sass-brunch": "^2.10.4", 
    "uglify-js-brunch": "^2", 
    "isomorphic-fetch": "^2.2.1", 
    "react": "^15.4", 
    "react-addons-css-transition-group": "^15.4.2", 
    "react-dom": "^15.4", 
    "react-redux": "~4.3.0", 
    "react-router": "^3.0.2", 
    "react-router-redux": "^4.0.8", 
    "redux": "~3.2.1", 
    "redux-form": "^6.6.2", 
    "redux-logger": "^3.0.0", 
    "redux-saga": "^0.14.3" 
    } 

答えて

1

私はあなたがこれを行うために必要があると思う:

conventions: { 
    vendor: /(^bower_components|node_modules(?!\/react)|vendor)\// 
} 

docsを参照してください。

EDIT:回答を変更しました。この正規表現は、2つの反応ノードモジュールと一致しないため、ファイルには含まれません。

+0

提案に感謝します。それは良い回避策です...しかし、私はパブリックディレクトリにコピーされたファイルを望んでいない、私は単にそれらを無視したい。 – Menklab

+0

ああ、私のせいだ。これにより、リスト内にあればコピーされます。一致する場合はコピーされます。だから、それらを除いたRegExを構築しなければならないかもしれません。 –

+0

答えを更新しました。それは今働きますか? –