diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.eslintrc.repo.js b/.eslintrc.repo.cjs similarity index 96% rename from .eslintrc.repo.js rename to .eslintrc.repo.cjs index 67f48962..a3796fa2 100644 --- a/.eslintrc.repo.js +++ b/.eslintrc.repo.cjs @@ -6,7 +6,7 @@ const WARN = 1; /** @type {import('eslint').Linter.Config} */ module.exports = { extends: [ - "./.eslintrc.js", + "./.eslintrc.cjs", "@remix-run/eslint-config/internal", "plugin:markdown/recommended", ], diff --git a/cypress/.eslintrc.js b/cypress/.eslintrc.cjs similarity index 100% rename from cypress/.eslintrc.js rename to cypress/.eslintrc.cjs diff --git a/mocks/index.js b/mocks/index.js index 41246682..9c4e4a7e 100644 --- a/mocks/index.js +++ b/mocks/index.js @@ -1,5 +1,5 @@ -const { rest } = require("msw"); -const { setupServer } = require("msw/node"); +import { rest } from "msw"; +import { setupServer } from "msw/node"; // put one-off handlers that don't really need an entire file to themselves here const miscHandlers = [ diff --git a/package.json b/package.json index 0e067665..1f6655f3 100644 --- a/package.json +++ b/package.json @@ -2,17 +2,18 @@ "name": "indie-stack-template", "private": true, "sideEffects": false, + "type": "module", "scripts": { "build": "remix build", "dev": "remix dev -c \"npm run dev:serve\"", - "dev:serve": "binode --require ./mocks -- @remix-run/serve:remix-serve ./build", + "dev:serve": "NODE_OPTIONS=\"--require ./mocks\" remix-serve ./build/index.js", "format": "prettier --write .", "format:repo": "npm run format && npm run lint:repo -- --fix", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", - "lint:repo": "npm run lint -- --config .eslintrc.repo.js", + "lint:repo": "npm run lint -- --config .eslintrc.repo.cjs", "setup": "prisma generate && prisma migrate deploy && prisma db seed", "start": "remix-serve build", - "start:mocks": "binode --require ./mocks -- @remix-run/serve:remix-serve build", + "start:mocks": "NODE_OPTIONS=\"--require ./mocks\" remix-serve ./build/index.js", "test": "vitest", "test:e2e:dev": "start-server-and-test dev http://localhost:3000 \"npx cypress open\"", "pretest:e2e:run": "npm run build", @@ -52,7 +53,6 @@ "@vitejs/plugin-react": "^4.0.4", "@vitest/coverage-v8": "^0.34.2", "autoprefixer": "^10.4.15", - "binode": "^1.0.5", "cookie": "^0.5.0", "cross-env": "^7.0.3", "cypress": "12.17.3", @@ -81,6 +81,6 @@ "node": ">=14.0.0" }, "prisma": { - "seed": "ts-node --require tsconfig-paths/register prisma/seed.ts" + "seed": "ts-node --esm --require tsconfig-paths/register prisma/seed.ts" } } diff --git a/postcss.config.js b/postcss.config.cjs similarity index 100% rename from postcss.config.js rename to postcss.config.cjs diff --git a/remix.config.js b/remix.config.js index 5b743123..feda42dd 100644 --- a/remix.config.js +++ b/remix.config.js @@ -1,5 +1,5 @@ /** @type {import('@remix-run/dev').AppConfig} */ -module.exports = { +export default { cacheDirectory: "./node_modules/.cache/remix", future: { v2_dev: true, @@ -11,6 +11,6 @@ module.exports = { }, ignoredRouteFiles: ["**/.*", "**/*.test.{js,jsx,ts,tsx}"], postcss: true, - serverModuleFormat: "cjs", + serverModuleFormat: "esm", tailwind: true, }; diff --git a/remix.init/index.js b/remix.init/index.js index 521944d4..b399bb7f 100644 --- a/remix.init/index.js +++ b/remix.init/index.js @@ -260,7 +260,7 @@ const main = async ({ isTypeScript, packageManager, rootDirectory }) => { fs.rm(path.join(rootDirectory, ".github", "workflows", "no-response.yml")), fs.rm(path.join(rootDirectory, ".github", "dependabot.yml")), fs.rm(path.join(rootDirectory, ".github", "PULL_REQUEST_TEMPLATE.md")), - fs.rm(path.join(rootDirectory, ".eslintrc.repo.js")), + fs.rm(path.join(rootDirectory, ".eslintrc.repo.cjs")), fs.rm(path.join(rootDirectory, "LICENSE.md")), ]; diff --git a/tsconfig.json b/tsconfig.json index 9bacef83..76e38a03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "isolatedModules": true, "esModuleInterop": true, "jsx": "react-jsx", - "module": "CommonJS", + "module": "ES2020", "moduleResolution": "node", "resolveJsonModule": true, "target": "ES2019",