swc 编译 es6为commonjs

如果直接写es6后运行node index.js
报错:SyntaxError: Cannot use import statement outside a module js

我们这里使用swc来将es6编译成CommonJS。

以后可以作为一个简单的框架模版使用。

  1. 安装

pnpm add @swc/cli @swc/core

  1. 配置.swcrc
{
    "$schema": "https://swc.rs/schema.json",
    "jsc": {
        "parser": {
            "syntax": "ecmascript",
            "jsx": false,
            "decorators": true
        },
        "transform": {
            "legacyDecorator": true
        },
        "target": "es2021",
        "loose": false
    },
    "module": {
        "type": "commonjs",
        "ignoreDynamic": true
    },
    "isModule": true,
    "minify": false,
    "sourceMaps": true
}

package.json

{
  "name": "workers",
  "version": "0.0.1",
  "description": "",
  "main": "cjs/index.js",
  "module": "src/index.js",
  "react-native": "src/index.js",
  "private": true,
  "exports": {
      ".": {
          "import": "./src/index.js",
          "require": "./cjs/index.js"
      },
      "./*": {
          "import": "./src/*.js",
          "require": "./cjs/*.js"
      },
      "./**/*": {
          "import": "./src/**/*.js",
          "require": "./cjs/**/*.js"
      }
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "scripts": {
      "prettier": "prettier --write .",
      "clean": "shx rm -rf cjs coverage .nyc_output",
      "build": "pnpm clean && swc ./workers -d ./cjs --strip-leading-paths",
      "dev": "nodemon",
      "start": "pnpm build && node --enable-source-maps ./cjs/index.js"
  },
  "nyc": {
      "exclude": [
          ".*",
          "cjs",
          "test",
          "**/*.spec.js"
      ]
  },
  "devDependencies": {
    "@swc/cli": "^0.4.0",
    "@swc/core": "^1.7.26",
    "shx": "^0.3.4"
  },
  "prettier": {
      "quoteProps": "consistent",
      "printWidth": 120,
      "singleQuote": true,
      "trailingComma": "es5",
      "tabWidth": 4,
      "useTabs": false
  }
}

nodemon.json

{
    "watch": ["./src", "./conf"],
    "ignore": ["./node_modules", "./deps/*"],
    "ext": "js yaml",
    "exec": "pnpm build && node --enable-source-maps ./cjs/index.js"
}

swc的其他配置

添加重新编译配置

npm i -D chokidar

...
	"build": "pnpm clean && swc ./workers -d ./cjs -d --strip-leading-paths",
...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值