Pat*_*gen 6 node.js coffeescript es6-modules
Ecmascript 模块是打包 JS 代码的未来,Node.js 和 Coffeescript 都支持它们。但是我在让他们对 ESM 的支持协同工作时遇到了一些麻烦。
当前的稳定节点 (12.x) 在标志 ( --experimental-modules)后面有 ESM 模块。Coffeescript 支持使用--nodejs. 因此,对于使用 ESM 模块的几个文件:
# a.coffee
import b from './b.coffee'
b()
Run Code Online (Sandbox Code Playgroud)
# b.coffee
b = ->
console.log "Hello"
export default b
Run Code Online (Sandbox Code Playgroud)
理论上,我们可以使用npx coffee --nodejs --experimental-modules a.coffee. 在实践中,这会引发一个错误:
13:24 $ npx coffee --nodejs --experimental-modules a.coffee
(node:8923) ExperimentalWarning: The ESM module loader is experimental.
(node:8923) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
/media/projects/coffeemodules/a.coffee:1
import b from './b.coffee';
^^^^^^
SyntaxError: Cannot use import statement outside a module
...
Run Code Online (Sandbox Code Playgroud)
错误和文档说有两种方法可以将文件标记为包含 ESM 模块,一种是使用mjs扩展名(我们在这里不可用),另一种是设置"type": "module"in package.json,这似乎也没有上班。
所以:可以做到吗?有没有办法让 Coffeescript 和 Node.js ES 模块一起玩?
| 归档时间: |
|
| 查看次数: |
479 次 |
| 最近记录: |