簡體   English   中英

編寫webpack加載器 - 注入一次代碼

[英]Writing a webpack loader - inject code once

我正在嘗試編寫一個webpack加載器,其中一個要求是我需要將代碼ONCE注入每個bundle。

加載器中是否有一種方法可以檢測我正在處理的模塊是否是一個入口點? 如果沒有,是否有一種簡單的方法可以為每個包注入一次代碼?

您可以像注入代碼一樣注入代碼。 您的加載器應該將帶有需求的轉換源返回到您需要注入一次的代碼。 Webpack的文檔將此公共代碼稱為加載器的運行時。 http://webpack.github.io/docs/how-to-write-a-loader.html#extract-common-code

 var loaderUtils = require('loader-utils'); module.exports = function(content) { return "require(" + loaderUtils.stringifyRequest(this, "!" + require.resolve("./runtime")) + ");\\n\\n" + content; }; 

這有用嗎?

module.exports = function (content) {

  if (this.options.entry == this.resourcePath)
    content = 'var newCode = 10;\r\n\r\n' + content;

  return content;

};

我使用它只在入口文件上注入代碼。

您不能在入口點使用裝載機(並且您不能依賴入口點)。 因此,如果您想通過加載器注入一些代碼,則必須在每個入口點對其進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM