我正在尝试创建一个自定义加载程序,以便为 chrome 扩展生成 manifest.json 文件,由于某种原因,我无法通过 loaderUtils 访问“选项”对象,因为this
它是一个空对象……是我还应该做些什么来确保 loaderRunner 调用我的 loader 函数并this
正确初始化?
manifest-loader.js
const loaderUtils = require('loader-utils');
module.exports = (source) => {
const options = loaderUtils.getOptions(this);
console.log(this)
const env = options.env;
let APP_DOMAIN = env === 'production' ? 'production_domain' : 'http://localhost:3000';
let icons = env === 'production' ? ({
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
}) : ({ "128": "icon-dev128.png" });
let manifest_template = JSON.parse(source);
manifest_template.permissions.push(`${APP_DOMAIN}/*`);
manifest_template.content_scripts[0].matches.push(`${APP_DOMAIN}/*`)
manifest_template.icons = icons;
let indentation = this.minimize ? null : 2
return JSON.stringify(manifest_template, null, indentation) + '\n'
}
webpack.config.js
{
test: /manifest\.json$/,
use: {
loader: path.resolve('src/loaders/manifest-loader.js'),
options: {
env: `${env.NODE_ENV}`
}
}
}