Skip to content

Commit

Permalink
feat(css-loader): Fix basic of css loader (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jul 26, 2023
1 parent 978cc01 commit cbd1c46
Show file tree
Hide file tree
Showing 16 changed files with 1,514 additions and 79 deletions.
4 changes: 4 additions & 0 deletions packages/css-loader/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules/
build/
package-lock.json
*.log
5 changes: 5 additions & 0 deletions packages/css-loader/examples/modules/App.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@import 'globals.css';

.text {
color: green;
}
3 changes: 3 additions & 0 deletions packages/css-loader/examples/modules/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:global div {
color: red;
}
13 changes: 13 additions & 0 deletions packages/css-loader/examples/modules/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from "react";
import ReactDOM from "react-dom";
import * as classes from "./App.module.css";
console.log(classes);
function App() {
return (
<div>
<h1 className={classes.text}>JSX is working!</h1>
</div>
);
}

ReactDOM.render(<App />, document.getElementById("root"));
27 changes: 27 additions & 0 deletions packages/css-loader/examples/modules/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "swc-css-loader-css-modules-app",
"private": false,
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "(cd ../.. && pnpm build) && webpack && cp public/* build",
"start": "ecstatic build --port 3000"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@swc/css": "^0.0.25",
"@swc/css-loader": "workspace:^",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"swc-loader": "workspace:^"
},
"devDependencies": {
"ecstatic": "^4.1.4",
"style-loader": "^3.3.3",
"webpack": "^5.69.1",
"webpack-cli": "^5.1.4"
}
}
10 changes: 10 additions & 0 deletions packages/css-loader/examples/modules/public/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!doctype html>
<html>
<head>
<title>swc-loader example</title>
<script src="/bundle.js" async defer></script>
</head>
<body>
<div id="root"></div>
</body>
</html>
60 changes: 60 additions & 0 deletions packages/css-loader/examples/modules/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"use strict";

const path = require("path");

module.exports = {
mode: "development",
// Enable source map
devtool: "source-map",
entry: path.join(__dirname, "index.js"),
output: {
path: path.join(__dirname, "build"),
filename: "bundle.js",
},
module: {
rules: [
{
test: /\.css$/,
exclude: /(node_modules|bower_components)/,
use: [
{
loader: "style-loader",
},
{
loader: "@swc/css-loader",
options: {
// Enable source map
sourceMap: true,
},
},
],
},
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: "swc-loader",
options: {
// Enable source map
sourceMap: true,
jsc: {
parser: {
syntax: "ecmascript",
jsx: true,
},
transform: {
react: {
pragma: "React.createElement",
pragmaFrag: "React.Fragment",
throwIfNamespace: true,
development: false,
useBuiltins: false,
},
},
},
},
},
},
],
},
};

0 comments on commit cbd1c46

Please sign in to comment.