假设我有一个code.js
文件,其中包含以下node.js脚本:
const axios = require('axios')
async function getData(){
const response = await axios.get('https://mypage.com.br')
console.log(response.data)
}
getData()
如果我用node code.js
执行它,它会运行得非常好...然而,我想把它作为一个模块来执行,这样我就可以使用import
语句和await
命令作为顶层。我想在不使用package.json
文件创建项目的情况下完成这一操作。
import axios from 'axios'
const response = await axios.get('https://mypage.com.br')
console.log(response.data)
我还没有设法让它与node
命令一起工作。我知道有一个--input-type=module
参数我可以与它一起使用。但我尝试运行node --input-type=module code.js
,我收到了以下错误:
SyntaxError: Cannot use import statement outside a module
所以,这意味着它甚至还没有被识别为一个模块。可以这样做吗?我可以用命令node
作为一个模块执行一个独立的脚本吗(同时在顶层使用await
)?
3条答案
按热度按时间svgewumm1#
将文件重命名为
name.mjs
。此--input-type
参数仅适用于STDIN和--eval
-d文件。camsedfj2#
这在命令行中是不可能的,你只有两个选项来创建ESM文件。
1.编辑
package.json
,使其具有以下键和值。1.将文件扩展名从
.js
更改为.mjs
。m 代表 * 模块 *。总之,下面的标志对将类型更改为module没有帮助。
xienkqul3#
另一种不用重命名文件的方法是使用
pipe
执行代码。