【发布时间】:2016-12-29 11:32:41
【问题描述】:
我需要在我的 .js 和 .less 文件之间共享一个常量。我的解决方案是包含两个步骤:
- 创建一个扩展名为 .const 的单独文件,其中包含所有共享 const。它具有 javascript 模块语法,将正常执行。
- 创建一个加载器,它会根据需要此源的文件的扩展名更改源代码。因此,例如,如果需要 .less 文件,则代码将转换为更少的表达式
但我找不到根据需要的模块从一个源文件创建两个模块的方法。
我的条件加载器的源代码,做的东西:
module.exports = function(content, sourceMap) {
var _ = require('lodash');
var loaderUtils = require('loader-utils');
var reasonResource = this._module.reasons[0].module.resource;
var reasonResourceExtension = _.last(reasonResource.split('.'));
switch (reasonResourceExtension)
{
case 'js':
case 'const':
var query = loaderUtils.parseQuery(this.query);
if(query.cacheable && this.cacheable)
this.cacheable();
return content;
break;
case 'less':
var consts = this.exec(content, this.resource);
return JSON.stringify(consts);
break;
default:
throw new Error('Not supported import .const modules from ' + reasonResourceExtension.green);
}
};
【问题讨论】:
标签: javascript node.js webpack