Javascript 如何在e2e测试(Vue+;nightwatch)中同时使用import/require

Javascript 如何在e2e测试(Vue+;nightwatch)中同时使用import/require,javascript,vue.js,ecmascript-6,babeljs,nightwatch.js,Javascript,Vue.js,Ecmascript 6,Babeljs,Nightwatch.js,是否可以在e2e测试中同时使用这两种方法?我可以在Vue中使用这两种方法。这些js文件位于myproject/src/js文件夹中。但在myproject/test/e2e中,我知道Nightwatch使用的节点只能使用require语法,但我可以将文件重命名为mjs,然后它支持import语法,但如果我在另一个测试中尝试使用require导入mjs文件,它给出了错误:必须使用导入加载ES模块错误…我想知道这是否可能。就像我可以在Vue src/*中使用的一样,js文件到处混合使用require

是否可以在e2e测试中同时使用这两种方法?我可以在Vue中使用这两种方法。这些js文件位于myproject/src/js文件夹中。但在myproject/test/e2e中,我知道Nightwatch使用的节点只能使用
require
语法,但我可以将文件重命名为mjs,然后它支持
import
语法,但如果我在另一个测试中尝试使用
require
导入mjs文件,它给出了
错误:必须使用导入加载ES模块
错误…我想知道这是否可能。就像我可以在Vue src/*中使用的一样,js文件到处混合使用require/import

我在
babel.config.js

module.exports = {
  presets: [
    ["@babel/preset-env"],
    // I tried below as well
    [
      "@vue/cli-plugin-babel/preset",
      {
        useBuiltIns: "entry",
       }
    ],
  ]
}
require('babel-register')() // no differences if i add this or not..
module.exports = {
  presets: [
    ["es2015", {"modules": false}] // set modules to true or false dose not help..
  ]
}
我在
package.json

devDependencies {
    "@babel/plugin-proposal-optional-chaining": "^7.2.0",
    "babel-core": "7.0.0-bridge.0",
    "babel-eslint": "^10.0.3",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-jest": "^23.6.0",
    "babel-loader": "^7.1.1",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-plugin-dynamic-import-node": "^1.2.0",
    "babel-plugin-syntax-jsx": "^6.18.0",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-plugin-transform-vue-jsx": "^3.5.0",
    "babel-preset-env": "^1.3.2",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
}
nightwatch.conf.js中

module.exports = {
  presets: [
    ["@babel/preset-env"],
    // I tried below as well
    [
      "@vue/cli-plugin-babel/preset",
      {
        useBuiltIns: "entry",
       }
    ],
  ]
}
require('babel-register')() // no differences if i add this or not..
module.exports = {
  presets: [
    ["es2015", {"modules": false}] // set modules to true or false dose not help..
  ]
}

我已经为此挣扎了好几天…请帮帮我..

这能回答你的问题吗不幸的是,它不能回答你的问题…而帖子是2017年…现在巴贝尔似乎建议使用“@babel/preset env”。这里有一个类似的东西,实际上我更新了我的问题..我刚刚发现,如果我将文件重命名为mjs,它可以使用导入。但是普通js文件不需要它。获取另一个错误…好的,那么您遇到的问题不是使用
nightwatch
而是使用
node.js
runner。因为您正在运行的代码是在
node.js
上下文中执行的。如果您在启用
import/export方面遇到很多困难,那么最好使用
require('moduleName')