簡體   English   中英

Mocha / Webpack:不能在模塊外使用導入語句

[英]Mocha / Webpack: Cannot use import statement outside a module

我是 Node 和 JS 測試的新手。 我有一個 web 應用程序 w/ Webpack 作為捆綁器。 我有一些包含在頁面中的入口點 JS。 入口點使用這樣的模塊文件:

export default function() {
    ...
}

現在我想對這個模塊進行單元測試。 我已經拿起摩卡,但它對我來說並不重要。 可能是 Jest 或其他任何東西。

我像這樣寫了一個非常簡單的test.js 它除了測試整個設置是否有效外什么都不做:

import foo from '../js/someModuleOfMine'

const assert = require('assert')

describe('Test Suite', () => {
    it('should at least run', () => {
        assert.equal(true, true)
    })
})

從 CLI 執行mocha給我這個錯誤:

import foo from '../js/someModuleOfMine'
^^^^^^

SyntaxError: Cannot use import statement outside a module

遵循一些建議,我已經厭倦了將"type": "module"添加到我的package.json ,但它只是將錯誤更改為更加模糊的內容:

Error: Not supported

我肯定遺漏了一些明顯的東西,但我無法理解是什么。

不確定它是否對 OP 有幫助,但我遇到了同樣的問題,這是由於 typescript 造成的。我這樣解決了:

安裝 ts 節點:

npm install ts-node --save-dev

在 mocha 配置中添加require行(我在 package.json 中有它,但也可以在 .mocharc.json 文件中有它):

  "mocha": {
    "spec": "./**/*test.ts",
    "ignore": "./node_modules/**",
    "require": "ts-node/register/files",
    "timeout": 20000
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM