要运行测试,我使用
protractor conf.js
我明白了
File 'main' needs function 'httpGet' from file 'support.js'
在“主要”中,我从
const { httpGet } = require('./support');
到
import { httpGet } from './support';
和支持文件中的
exports.httpGet = (siteUrl) => {
到
export function httpGet(siteUrl) {
但我知道
import { httpGet } from ('./support');
^^^^^^
SyntaxError: Cannot use import statement outside a module
我尝试使用.mjs扩展名,在我的"type": "module"
文件中添加了package.json
,但是它们都给出了相同的错误。我应将进口物品放在哪里?我目前在特定的it
示例中有它,可以吗?'
请注意,我不会直接运行node命令,而是使用
protractor conf.js
答案 0 :(得分:2)
更新3:从节点13开始,您可以使用.mjs扩展名,也可以在package.json中设置“ type”:“ module”。您不需要使用--experimental-modules标志。
更新2:从节点12开始,您可以使用.mjs扩展名,也可以在package.json中设置“ type”:“ module”。并且您需要使用--experimental-modules标志运行节点。
更新:在节点9中,它在标志后面启用,并使用.mjs扩展名。
node --experimental-modules my-app.mjs
虽然导入确实是ES6的一部分,但是不幸的是,默认情况下NodeJS尚不支持导入,并且最近才在浏览器中提供支持。
如果您真的想在NodeJS中使用ES6 / 7的新功能,则可以使用Babel对其进行编译。
答案 1 :(得分:1)
Node.js包括对ES6支持的实验性支持。在此处了解更多信息: https://nodejs.org/docs/latest-v12.x/api/esm.html#esm_enabling 节点> = v13
保存扩展名为.mjs的文件,或者
将类型作为模块添加到最近的package.json中。
节点
使用扩展名为.mjs的ES6模块保存文件,然后按以下方式运行文件: 节点--experimental-modules my-app.mjs