fis3-preprocessor-define

1.1.0 • Public • Published

fis3-preprocessor-define

fis3插件:用来替换代码中的变量。常用来替换环境变量等可配置的常量,如根据不同环境替换node.js模式的环境变量:process.env.NODE_ENV。 支持常量替换正则替换

test

编写test/src.js, 执行npm test,查看test/build.js

使用

 
fis.media('test', {
  preprocessor: fis.plugin('define', {
    defines: {
      'process.env.NODE_ENV': JSON.stringify('test')
    }
  });
});
 
fis.media('prod', {
  preprocessor: fis.plugin('define', {
    defines: {
      'process.env.NODE_ENV': JSON.stringify('production')
    }
  });
});
 

配置

  • 常量替换: 用来替换常量。key: value, key为要替换的常量,value为替换后的内容。
  • 正则替换: 通过自定义正则的方式替换。[{pattern: pattern, replacer: replacer}]。 pattern为正则对象,replacer为用来替换的字符串或者函数。参考:str.replace(pattern, replacer)
 
var config = {
  // 常量替换
  defines: {
    'process.env.NODE_ENV': JSON.stringify('production'),
    'FUN': function() {
      console.log('fun');
    },
    OBJECT: {
      a: 'a',
      b: 'b',
      c: 'c'
    },
    STR: JSON.stringify('i am comming !'),
    NULL: null,
    UNDEFINED: undefined,
    TEST: 'window.test'
  },
  // 正则替换
  replacers: [
    {
      pattern: 'hello world !',
      replacer: 'HELLO WORLD !'
    },
    {
      pattern: /hello ([ABCD]) ([ABCD]) ([ABCD]) ([ABCD]) !/ig,
      replacer: function($0, $1, $2, $3, $4) {
        return 'hello ' + $1 + ' `I AM B` ' + $3 + ' ' + $4 + ' !';
      }
    }
  ]
};
 

注意

  • 如配置TEST, xxxx.TEST不会替换,但是TEST.xxxx会被替换。
  • 如果要将一个本身不在字符串中的字符串,替换为字符串str,值需要为JSON.stringify(str)

Package Sidebar

Install

npm i fis3-preprocessor-define

Weekly Downloads

3

Version

1.1.0

License

MIT

Last publish

Collaborators

  • season.chen