@mixtape

Как исключить парсинг require в список модулей в webpack?

Нужен совет гуру. Есть директория, в которой лежат jade шаблоны. Хочу сделать простую компиляцию в html. То есть нужен простой принцип "cкомпилировать и выплюнуть". В некоторых js модулях, естественно, происходит require этих jade шаблонов, которые обрабатываются такой цепочкой file!jade-html лоадеров в конфиге webpack. То есть сначала компилируется html, который передаётся в file-loader, который сохраняет скомпилированный вариант в директории. Проблема в том, что после запуска webpack в сборке создаётся дополнительные модули, из-за того что в js-точке входе имеется require("./tmpl.jade"). Как сделать так, чтобы лоадеры запускались, но наличие данного require не проводило к созданию модулей в сборке этой точки входа?

Пример:
webpack.config.js:
"use strict";

let path = require("path");

module.exports = {
  context: __dirname,
  entry: {
    index: "./js/index"
  },
  output: {
    path: path.resolve(__dirname, "./dist"),
    filename: "./[name].min.js",
    publicPath: "/"
  },
  plugins: [],
  module: {
    loaders: [
      { test: /\.jade$/, loader: "file?name=[name].html!jade-html" }
    ]
  }
};


точка входа ./js/index.js:
"use strict";
require("./template.jade");
console.log("etc");


шаблон скомпилировался отлично и создался (dist/template.html), но это привело к созданию ненужного второго модуля в dist/index.min.js из-за require:

...
/* 0 */
/*!*************************!*\
  !*** ./js/index.js ***!
  \*************************/
  function(module, exports, __webpack_require__) {
	"use strict";
	__webpack_require__(/*! ./template.jade */ 1);
	console.log("etc");
    },
/* 1 */
/*!********************************!*\
  !*** ./js/template.jade ***!
  \********************************/
  function(module, exports, __webpack_require__) {
	module.exports = __webpack_require__.p + "./dist/template.html";
  }
...


Нужно чтобы на сборку js это не отражалось, то есть:
...
/* 0 */
/*!*************************!*\
  !*** ./js/index.js ***!
  \*************************/
  function(module, exports, __webpack_require__) {
	"use strict";
	console.log("etc");
  }
...


Как эта задача решается средствами webpack?
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы