Thử nhập kiểu ES6 sẽ cho 'Không thể sử dụng câu lệnh nhập bên ngoài mô-đun'


8

Tôi đang cố gắng viết một bài kiểm tra javascript trong intellij mà tôi cần nhập một số phụ thuộc và tôi muốn sử dụng các câu lệnh nhập kiểu ES6 nhưng gặp lỗi

/ usr / local / bin / node / workspace / rr-sample / node_modules / mocha / bin / _mocha --ui bdd --reporter "/ Users / me / Library / Application Support / IntelliJIdea2019.1 / NodeJS / js / mocha- intellij / lib / mochaIntellijReporter.js "tests / *. test.js /workspace/rr-sample/tests/App.test.js:3

nhập khẩu chai từ 'chai'

^ ^ ^ ^ ^ ^ ^

singleRun (/workspace/rr-sample/node_modules/mocha/lib/cli/run-helpers.js:108:16) tại export.runMocha (/ workspace / rr-sample / node_modules / mocha / lib / cli .js: 142: 13) tại Object.exports.handler (/workspace/rr-sample/node_modules/mocha/lib/cli/run.js:292:3) tại Object.runCommand (/ workspace / rr-sample / node_mod /yargs/lib/command.js:242:26) tại Object.parseArss [as _parseArss] (/workspace/rr-sample/node_modules/yargs/yargs.js:1087:28) tại Object.parse ( -sample / node_modules / yargs / yargs.js: 566: 25) tại Object.exports.main (/workspace/rr-sample/node_modules/mocha/lib/cli/cli.js:68:6) tại Object. (/ workspace / rr-sample / node_modules / mocha / bin / _mocha: 10: 23) tại Module._compile (Internal / module / cjs / loader.js: 1121: 30) tại Object.Module._extensions..js (Internal /modules/cjs/loader.js:1160:

Chính xác thì vấn đề là gì? Tôi đã tìm thấy liên kết này (và những người khác) http://xahlee.info/js/js_import_export.html cho bạn biết cách khắc phục lỗi này nhưng trong một bối cảnh khác không giúp được tôi và nó không giải thích được vấn đề là gì .

Trong trường hợp nó hữu ích ở đây là mã tôi đang sử dụng.

//const chai = require("chai");
import chai from 'chai'

const React = require("react");
const expect = chai.expect;

describe('how it works first-time test', () => {
  it('checks equality', () => {

    const val = false;
    expect(val).to.be.false;
  });

});

1
Không có gì giải thích được vấn đề là gì  - nó nói rõ ràng là Nếu Nếu mã của bạn sử dụng importhoặc export, thì nó phải được tải dưới dạng mô-đun. dọc theo phần mà nó nói rằng bạn phải sử dụng type="module". Bạn đã thấy cú pháp mô-đun Intellij Idea Ecmascript Harmony chưa?
dùng4642212

Câu trả lời:


5

Cách dễ nhất để chạy các bài kiểm tra Mocha được viết bằng ES6 là biên dịch chúng một cách nhanh chóng bằng --require @babel/registertùy chọn Mocha (xem https://github.com/mochajs/mocha/wiki/compilers-deprecation#what-should-i-use-instead -then ). Tất nhiên, bạn cần phải chắc chắn để cài đặt các module tương ứng và thiết lập .babelrcphù hợp

gói.json:

"dependencies": {
  "@babel/cli": "^7.7.4",
  "@babel/core": "^7.7.4",
  "@babel/preset-env": "^7.7.4",
  "@babel/register": "^7.7.4",
...
}

.babelrc:

{
  "presets": [
    [
      "@babel/preset-env"
    ]
  ]
}

nhập mô tả hình ảnh ở đây

Xem thêm https://dev.to/bnorbertjs/my-nodejs-setup-mocha--chai-babel7-es6-43ei


Quan trọng đối với tôi là Tùy chọn Mocha bổ sung
guido

@lena tôi có thể tìm thấy cửa sổ đó ở đâu ???
Miel Yan

Đó là cấu hình chạy Mocha, bạn có thể tìm thấy nó trong Run> Chỉnh sửa cấu hình ...
lena

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.