百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
T

trans-loader

> 编程语言
开源

无网络包的前端与服务-工作端

99 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

无网络包的前端与服务-工作端

trans-loader

You don't need npm and bundler.

You need just a service-worker script.

What this script does...

  • Transform .js with babel on service-worker
  • Transform .ts and .tsx with typescript on service-worker
  • Load modules from jspm.io and cache them on serviceWorker.

CAUTION!

  • development only. Do not use for production.
  • It works only for modern browser(ES2015+ and ES Modules ready).

How to use

Put dist/sw.js as /sw.js on your app root.

bash
wget https://raw.githubusercontent.com/mizchi/trans-loader/master/dist/sw.js

Rewrite your entry js like below.

Before

xml

After

xml

See working demo

Example 1: Compiled with babel

javascript
// /your-entry.js
import React from "react";
import ReactDOM from "react-dom";
ReactDOM.render(
Hello
, document.querySelector(".root"));

Example 2: Load relative file

index.html
sw.js
src/main.js
src/components/App.js
javascript
// main.js
import React from "react";
import ReactDOM from "react-dom";
import App from "./components/App";
ReactDOM.render(, document.querySelector(".root"));

Example 3: Load typescript

index.html
sw.js
src/main.js
src/components/App.tsx
javascript
// main.js
import React from "react";
import ReactDOM from "react-dom";
import App from "./components/App";
ReactDOM.render(, document.querySelector(".root"));

Example 4: Loading with package.json's version

index.html
sw.js
package.json
src/main.js

package.json

{
  "dependencies": {
    "react": "16.4.1",
    "react-dom": "16.4.1"
  }
}

Log

trans-loader: Cache https://dev.jspm.io/[email protected]
trans-loader: Cache https://dev.jspm.io/[email protected]

How it works

Rewrite js content with service-worker proxy

Compile content with babel/typescript by extname

javascript
// ...
self.addEventListener("fetch", (event: any) => {
  if (event.request.url.indexOf("dev.jspm.io") > -1) {
    // cache jspm result
    event.respondWith(useCacheOrLoad(event.request));
  } else if (event.request.url.indexOf("/src/") > -1) {
    // transform
    console.log("trans-loader: with-transform", event.request.url);
    event.respondWith(respondWithTransform(event.request.url));
  }
});

Rewrite to dev.jspm.io

Rewrite npm module path to dev.jspm.io. See this code

javascript
// before
import React from "react";
// after
import React from "https://dev.jspm.io/react";

Add valid extname

  • Try to access .js, .mjs, .ts, .tsx, /index.js, /index.ts, /index.tsx
  • return file with non-error endpoint

LICENSE

MIT

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScriptbabeljspmservice-workertrans-loader

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月18日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言