你能在.babelrc中使用正则表达式吗?

时间:2016-07-18 17:48:26

标签: javascript ecmascript-6 babeljs

这是.babelrc的样子。显然,由于JSON文件中的正则表达式,它不起作用:

{
  "presets": ["es2015", "react"],
  "plugins": ["transform-object-rest-spread"],
  "only": [
    '/client/**/*',
    '/server/**/*',
    /diy-fe-shared/ // <--- regex here breaks
  ]
}

有没有办法在这里使用正则表达式?

2 个答案:

答案 0 :(得分:3)

也许您可以在.babelrc中使用正则表达式:https://github.com/probablyup/markdown-to-jsx

创建.babelrc.js

const plugins = [       &#39;情感&#39 ;,     ];

if (process.env.NODE_ENV === 'production') {
  plugins.push('transform-react-remove-prop-types');
}

module.exports = {
  plugins,
  presets: [
    ['es2015', {
      loose: true,
      modules: process.env.BABEL_ENV === 'esm' ? false : 'commonjs',
    }],
    'react',
    'stage-2',
  ],
};

然后在.babelrc.js

中需要.babelrc
{
  "presets": ["./.babelrc.js"]
}

答案 1 :(得分:0)

否,您不能在.babelrc文件中使用正则表达式。但是您可以在.babelrc.js个文件中

.babelrc重命名为.babelrc.js并导出配置对象:

module.exports = {
  "env": {
    "production": {
      "plugins": [/* Only run if webpack configures babel-loader's options.envName="production" */]
    }
  },
  "presets": ["es2015", "react"],
  "plugins": ["transform-object-rest-spread"],
  "only": [
    '/client/**/*',
    '/server/**/*',
    /diy-fe-shared/ // <--- regex here works
  ]
};

https://babeljs.io/docs/en/configuration#babelrcjs