【问题标题】:Common module format for isomorphic/universal javascript application同构/通用 javascript 应用程序的通用模块格式
【发布时间】:2015-11-06 17:07:48
【问题描述】:

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

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

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

我试过 systemjs,但问题是 Systemjs 无法加载 nodejs 模块,就像它让 node 需要一样,例如

System.import("express")

工作方式不一样

require("express")

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

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

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

还是我走错了方向?

【问题讨论】:

  • 我从来没有使用过steal JS,但是快速浏览他们的主页告诉我这是一个模块加载器?如果是这样,你为什么还要使用系统 JS?

标签: javascript node.js systemjs isomorphic-javascript stealjs


【解决方案1】:

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

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

尝试在您的系统配置中添加类似这样的内容:

System.config({
  baseURL: "/",
  defaultJSExtensions: true,
    meta: {
        "*js": {
            format: "cjs"
        }
    }
})

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2021-06-12
    • 2010-11-05
    • 2012-09-07
    • 2017-11-03
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多