如何使用 babel/register 忽略非 js 文件

How to ignore non-js files with babel/register

当我的 Node 应用程序包含来自我的应用程序的路由时,我想忽略非 js 文件,例如

import './scss/App.scss' // i.e via Router.js -> Routes.js -> App.js

目前 Node 显然抛出了一个解析错误,因为它试图将 scss 解析为 js。 babel 钩子目前看起来像这样:

require('babel/register')({
    stage: 0
});

有什么办法可以让 babel 忽略它们吗?谢谢

原来是节点需要调整:

require.extensions['.scss'] = () => {};

您可以创建 .babelrc 文件并设置 ignore 规则:

{
  "stage": 0,
  "ignore": [
    "*.scss"
  ]
}

您可以在此处阅读更多相关信息 - https://babeljs.io/docs/usage/babelrc/

您可以使用 babel-plugin-transform-import-ignore 忽略匹配的导入。所有匹配的导入语句将在编译后被删除。

{
  plugins: [
    [
      "babel-plugin-transform-import-ignore",
      {
        patterns: [".scss"]
      }
    ]
  ]
}