我试图编写同构/通用应用程序,将所有内容组合在一起有很多复杂功能。
我需要的是常见的(不要与commonjs混淆)客户端和服务器的模块格式,具有动态加载和es6 / 7脚本的可能性(如async / await等)
此外,我希望它在运行时不需要任何打包工具(如webpack
)我已经尝试过systemjs,但问题是Systemjs无法以与节点需要相同的方式加载nodejs模块,例如
System.import("express")
与
的工作方式不同require("express")
所以我试图在服务器端(+ babel用于转换)和浏览器中使用commonjs格式
在使用steal.js的浏览器中,它还使用了系统内的systemjs,可以在客户端加载npm模块并在运行时进行转换,但它不能自动转换commonjs模块,因为systemjs自动转换为esm / es6'格式:(
我需要用systemjs / stealjs强制转换cjs模块的方法,或者让System.import以可接受的方式在服务器上工作
或许我朝错误的方向前进?
答案 0 :(得分:0)
系统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"
}
}
})