代码之家  ›  专栏  ›  技术社区  ›  jcollum

节点11 REPL是否支持导入?

  •  2
  • jcollum  · 技术社区  · 6 年前

    根据这次谈话,我希望: https://github.com/nodejs/node/pull/22381

    但当我尝试的时候:

    ✗ nvm exec 11 node --experimental-modules  
    Running node v11.1.0 (npm v6.4.1)
    > (node:31601) ExperimentalWarning: The ESM module loader is experimental.
    
    > 
    > let pt = require("./src/constants/paymentTypes.js")
    /Users/jcol53/work/orders/src/constants/paymentTypes.js:1
    (function (exports, require, module, __filename, __dirname) { import { defineMessages, formatMessage } from '@tools/shared';
                                                                         ^
    
    SyntaxError: Unexpected token {
    

    结果与相同 ✗ nvm exec 11 node --experimental-vm-modules

    import 将在节点11或节点12 REPL中受支持?

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Alex    6 年前

    它确实支持,但只是作为实验特性,它意味着

    • 您应该使用--experimental modules标志
    • 带有“import”的javascript文件的扩展名应为.mjs

    所以完整的命令看起来

    node --experimental-modules index.mjs
    

    在您的示例中,“paymentTypes.js”应重命名为“paymentTypes.mjs”。