当前位置: 首页 > article >正文

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",
...

http://www.kler.cn/news/310615.html

相关文章:

  • 「数组」堆排序 / 大根堆优化(C++)
  • 双端队列double-ended queue
  • c/c++语言中extern的用法(VS编译)
  • 代码结构之结构体
  • 算法面经手撕系列(2)--手撕BatchNormlization
  • 【每日一诗】【诗词创作】【诗】《雨前秋夜》
  • 浅谈Linux中的环回设备
  • C++将32位深图片处理成灰度图
  • 构建自己的文生图工具:Python + Stable Diffusion + CUDA
  • 基于PHP+MySQL组合开发的在线客服源码系统 聊天记录实时保存 带完整的安装代码包以及搭建部署教程
  • JAVA-集合相关
  • 功能测试干了三年,快要废了。。。
  • 工号不够用了怎么办? - 华为OD统一考试(E卷)
  • 【代码随想录训练营第42期 续Day58打卡 - 图论Part8 - Dijkstra算法
  • 在 Linux 系统中目录架构说明
  • c语言--力扣简单题目(最后一个单词的长度)讲解
  • 【毕设】基于Java的超市管理系统
  • SQL:DATEDIFF函数
  • Java网络编程:构建高性能的TCP/IP服务
  • OpenAI草莓正式发布,命名o1
  • SEW变频器的组成
  • 十一,Spring Boot 当中配置拦截器的“两”种方式
  • 函数调用与作用域
  • 下载 llama2-7b-hf 全流程【小白踩坑记录】
  • docker可视化管理工具推荐!docker.ui
  • OpenMV与STM32
  • nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink
  • 9.18 微信小程序开发笔记
  • HTTPS是如何保证安全传输的
  • spring boot设置多环境的配置文件