javascript - Jest 找不到 npm 模块
问题描述
我有一个简单的 Svelte 组件:
src/App.svelte
<script>
import Datepicker from 'svelte-calendar';
let selected = new Date();
</script>
<Datepicker bind:selected/>
<h1>Hello World!</h1>
它运行得很好,但我也想测试它:
src/App.test.js
import App from "./App.svelte";
import { render } from "@testing-library/svelte";
it("it works", async () => {
const { component } = render(App);
expect(component).toHaveTextContent("Hello");
});
jest.config.js
module.exports = {
transform: {
"^.+\\.svelte$": "svelte-jester",
"^.+\\.js$": "babel-jest",
},
moduleFileExtensions: ["js", "svelte"],
moduleDirectories: ["node_modules", "src"],
modulePaths: ["<rootDir>/src", "<rootDir>/node_modules"],
};
包.json
{
"name": "svelte-app",
"version": "1.0.0",
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public",
"test": "jest"
},
"devDependencies": {
"@babel/core": "^7.10.5",
"@babel/preset-env": "^7.10.4",
"@rollup/plugin-commonjs": "^12.0.0",
"@rollup/plugin-node-resolve": "^8.0.0",
"@testing-library/svelte": "^3.0.0",
"babel-jest": "^26.1.0",
"jest": "^26.1.0",
"rollup": "^2.3.4",
"rollup-plugin-livereload": "^1.0.0",
"rollup-plugin-svelte": "^5.0.3",
"rollup-plugin-terser": "^5.1.2",
"svelte": "^3.0.0",
"svelte-jester": "^1.0.6"
},
"dependencies": {
"sirv-cli": "^1.0.0",
"svelte-calendar": "^1.5.0"
}
}
开玩笑地运行此测试时,它会说Cannot find module 'svelte-calendar' from 'src/App.svelte'
. 我已经尝试node_modules
在jest.config.js
. 我怎样才能使这项工作?
解决方案
推荐阅读
- javascript - NodeJS将数据返回到客户端浏览器
- sql - 在 BigQuery 中使用“hits.{column name}”为未嵌套的匹配列添加前缀
- python - 如何使用不可选择的文本创建 PDF 文件?
- html - 使用CSS如何解决隐藏在前一个标签下的问题?
- reactjs - React 函数式组件 - Styleguidist
- typescript - 打字稿在正确键入的参数上引发错误
- linux - ANSI C 引用:为什么列 -s $'\t' 但列 -s '\xHH' 不使用 $'...'?
- python - ImageJ Python 脚本
- mysql - 如何根据传递的参数在mysql存储过程中附加条件
- asp.net - 如何使用 IP 安全或其他选项限制对单个 API 方法的访问