soc*_*way 17 puppeteer cypress dotenv
在加载.env文件以将 env 值传递给getToken.jscypress 根文件夹中的脚本时,会抛出无法找到模块 'dotenv' 错误。我已经安装了npm install dotenv. 有人可以告诉我在这里缺少什么吗?.env文件位于 cypress 根文件夹中。
环境:Windows 10 > git bash /命令提示符
const puppeteer = require("puppeteer");
require('dotenv').config({path: '.env'})
const baseURL = process.env.CYPRESS_BASE_URL
const testsUser = process.env.CYPRESS_TESTS_USERNAME
puppeteer
.launch({ headless: true, chromeWebSecurity: false, args: ['--no-sandbox'] })
.then(async browser => {
const page = await browser.newPage();
await page.goto(`${baseURL}/login`);
await page.waitFor(2000);
await page.waitForSelector("input[name=username]");
await page.type("input[name=username]", testsUser , {
delay: 50
});
browser.close();
});
Run Code Online (Sandbox Code Playgroud)
包.json
"scripts": {
"cy:run": "cypress run",
"get-token-main": "node getToken.js && mv tokenData.json cypress/fixtures",
"cy:open-qa": "npm run get-token-main && cypress open"
Run Code Online (Sandbox Code Playgroud)
internal/modules/cjs/loader.js:797
throw err;
^
Error: Cannot find module 'dotenv'
Require stack:
- /e2e/getToken.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/e2e/getToken.js:3:16)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/e2e/getToken.js' ]
Run Code Online (Sandbox Code Playgroud)
Dia*_*ana 33
您应该检查是否安装了 dotenv,否则在终端中输入:
npm install dotenv
Run Code Online (Sandbox Code Playgroud)
或者
npm install --dotenv-extended
Run Code Online (Sandbox Code Playgroud)
出现该问题的原因是您必须在“compilerOptions”下的 tsconfig.json 中添加“moduleResolution”值“node”。这样,一切都应该正常!:) 换句话说:
tsconfig.json:
{
"compilerOptions": {
"moduleResolution": "node", // add this line.
...
},
...
Run Code Online (Sandbox Code Playgroud)
小智 5
当我删除 package-lock.json 文件并创建一个新文件时,我也遇到了同样的问题。要修复此问题,请运行以下命令:
npm install dotenv
Run Code Online (Sandbox Code Playgroud)
即使您必须安装 dotenv,也请尝试再次安装。
| 归档时间: |
|
| 查看次数: |
36686 次 |
| 最近记录: |