Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

fis-preprocessor-defines

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fis-preprocessor-defines

A preprocessor plugin for fis2 to replace define variables.

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
3
-40%
Maintainers
1
Weekly downloads
 
Created
Source

fis-preprocessor-defines

说明

fis2预编译阶段插件,用来替换代码中已定义的变量。比如针对生产、开发环境替换process.env.NODE_ENV变量,以编译压缩react、vue等前端framework。

支持常量替换正则替换

test

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

使用


fis.config.merge({
    ...,
    modules: {
        preprocessor: {
            js: 'defines'
        }
    },
    settings: {
        preprocessor: {
            defines: {
                strings: {
                    'process.env.NODE_ENV': process.env.NODE_ENV ? JSON.stringify(process.env.NODE_ENV) : JSON.stringify("development")
                }
            }
        }
    }
});

#配置

  • 常量替换: 用来替换常量。key: value, key为要替换的常量,value为替换后的内容。
  • 正则替换: 通过自定义正则的方式替换。[{pattern: pattern, replacer: replacer}]。 pattern为正则对象,replacer为用来替换的字符串或者函数。参考:str.replace(pattern, replacer)

var config = {
  // 常量替换
  strings: {
    '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'
  },
  // 正则替换
  regs: [
    {
      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)

Keywords

fis2

FAQs

Package last updated on 06 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts