0

我正在尝试编写同构/通用应用程序,将所有东西联系在一起有很多复杂性。

我需要的是常见的(不要与 commonjs 混淆)客户端和服务器的模块格式,具有动态加载和 es6/7 脚本(如 async/await 等)的可能性

我也希望它在运行时转换,而不需要任何打包工具,如 webpack

我试过 systemjs,但问题是 Systemjs 无法以与它使 node 需要相同的方式加载 nodejs 模块,例如

System.import("express")

工作方式不一样

require("express")

所以我尝试在服务器端(+babel 用于转译)和浏览器中使用 commonjs 格式

在我使用steal.js的浏览器中,它也使用systemjs,可以在客户端加载npm模块并在运行时编译它,但它不能自动编译commonjs模块,因为systemjs只会自动编译'esm/es6 ' 格式 :(

我需要使用 systemjs/stealjs 强制转换 cjs 模块或使 System.import 以可接受的方式在服务器上工作的方法

或者也许我朝着错误的方向前进?

4

1 回答 1

0

System Js 可以导入 CJS 模块。我目前正在自己​​创建一个同构express///应用程序reactsystem jsjspm

文档在这里正确地说: https ://github.com/systemjs/systemjs/blob/master/docs/module-formats.md

尝试将这样的内容添加到您的系统配置中:

System.config({
  baseURL: "/",
  defaultJSExtensions: true,
    meta: {
        "*js": {
            format: "cjs"
        }
    }
})
于 2015-11-18T08:34:32.897 回答