当前位置:   article > 正文

遇到问题:validateOptions is not a function_originvalidatorfunc is not a function

originvalidatorfunc is not a function

项目场景:

node 模块中,我们一般使用的是 commom.js规范;

使用场景:小编在自己编写loader的时候,需要接收配置文件中给当前loader传递过来的参数,并且需要对接收到的参数进行验证,看是否符合参数规则;所以就使用到了 schema-utils 这个三方模块 ,当时小编没有使用 EsModule 规范进行导入,反而使用的是 commonJs 规范进行导入的这个三方模块,然而就出现了   validateOptions is not a function  这个问题~

解决方法请看下方~


问题描述:

小编当时写的代码如下:

  1. //1.引入
  2. const validateOptions = require("schema-utils");
  3. const loaderUtils = require("loader-utils");
  4. //2.编写loader
  5. module.exports = function (source) {
  6. //获取配置文件中传递过来的参数
  7. const options = loaderUtils.getOptions(this) || {};
  8. //指定验证规则
  9. let schema = {
  10. type: "object",
  11. //可以在properties中告诉webpack,当前loader可以传递哪些参数
  12. properties: {
  13. //可以传递name参数
  14. name: {
  15. //name参数的数据类型是字符串类型
  16. type: "string"
  17. }
  18. },
  19. additionalProperties: false
  20. };
  21. //验证参数
  22. validateOptions(schema, options, "ReplaceLoader");
  23. source = source.replace(/it666/g, options.name);
  24. return source;
  25. };

当执行到上方代码的时候出现了下面截图中的情况:


解决方案:

小编在使用导入的这个三方模块的时候,把上面的这一句代码 :

validateOptions(schema,options,"ReplaceLoader");

修改成了下方的代码,就正确了:

validateOptions.validate(schema,options,"ReplaceLoader");

                                                                                                                  

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/286810
推荐阅读
相关标签
  

闽ICP备14008679号