index.js 956 B

123456789101112131415161718192021222324252627282930
  1. const path = require("path");
  2. module.exports = (API, projectOptions) => {
  3. API.chainWebpack((config) => {
  4. config.resolveLoader.modules.prepend(path.join(__dirname, "node_modules"));
  5. config.resolve.extensions.prepend(".coffee");
  6. const coffeeRule = config.module.rule("coffee").test(/\.coffee$/);
  7. coffeeRule.use("cache-loader").loader(require.resolve("cache-loader"));
  8. if (process.env.NODE_ENV === "production" && !!projectOptions.parallel) {
  9. coffeeRule
  10. .use("thread-loader")
  11. .loader(require.resolve("thread-loader"))
  12. .options(
  13. typeof projectOptions.parallel === "number" ? { workers: projectOptions.parallel } : {},
  14. );
  15. }
  16. if (API.hasPlugin("babel")) {
  17. coffeeRule.use("babel-loader").loader(require.resolve("babel-loader"));
  18. }
  19. coffeeRule.use("coffee-loader").loader(require.resolve("coffee-loader"));
  20. coffeeRule.exclude.add("node_modules").end();
  21. });
  22. };