
💯 प्लगइन्स के माध्यम से Puppeteer को नई तरकीबें सिखाएँ।
यह puppeteer-extra के लिए मोनोरेपो है, जो puppeteer के लिए एक मॉड्यूलर प्लगइन फ्रेमवर्क है। :-)
🌟 मुख्य दस्तावेज़ के लिए, कृपया puppeteer-extra पैकेज पर जाएँ।
हमने हाल ही में Playwright के लिए भी समर्थन जोड़ा है, यदि आप इसमें रुचि रखते हैं तो playwright-extra पर जाएँ।
PRs और नए प्लगइन्स का स्वागत है! puppeteer-extra के लिए प्लगइन API साफ और उपयोग में मज़ेदार है। शुरू करने के लिए PuppeteerExtraPlugin बेस क्लास दस्तावेज़ देखें और संदर्भ के लिए मौजूदा प्लगइन्स देखें (न्यूनतम उदाहरण anonymize-ua प्लगइन है)।
हम Lerna (और yarn workspaces) द्वारा संचालित एक मोनोरेपो का उपयोग करते हैं, परीक्षण के लिए ava, लिंटिंग के लिए standard शैली और कोड के आधार पर markdown दस्तावेज़ को स्वतः-जनरेट करने के लिए JSDoc का भारी उपयोग करते हैं। :-)
यह मोनोरेपो Lerna और yarn workspaces द्वारा संचालित है।
# Install deps
yarn
# Bootstrap the packages in the current Lerna repo.
# Installs all of their dependencies and links any cross-dependencies.
yarn bootstrap
# Build all TypeScript sources
yarn build
# Install debug in all packages
yarn lerna add debug
# Install fs-extra to puppeteer-extra-plugin-user-data-dir
yarn lerna add fs-extra --scope=puppeteer-extra-plugin-user-data-dir
# Remove dependency
# https://github.com/lerna/lerna/issues/833
yarn lerna exec --concurrency 1 'yarn remove fs-extra; echo 0'
# Run test in all packages
yarn test
# Update JSDoc based documentation in markdown files
yarn docs
# Upgrade project wide deps like puppeteer
# (We keep the devDependency version blurry)
rm -rf node_modules
rm -rf yarn.lock
yarn
yarn lerna bootstrap
# Update deps within packages (interactive)
yarn lernaupdate
# If in doubt :-(
yarn lerna exec "rm -f yarn.lock; rm -rf node_modules; echo 0"
rm -f yarn.lock && rm -rf node_modules && yarn cache clean
# Run tests of specific package
cd packages/puppeteer-extra-plugin-stealth
yarn test
# Run tests of specific stealth evasion
cd packages/puppeteer-extra-plugin-stealth
yarn ava -v ./evasions/user-agent-override/index.test.js
# Test a local monorepo package in an outside folder as it would've been installed from the registry
# Change PACKAGE_DIR to the path of this monorepo and PACKAGE to the package you wish to install
PACKAGE=puppeteer-extra PACKAGE_DIR=/Users/foo/puppeteer-extra/packages && yarn remove $(echo $PACKAGE); true && rm -f $(pwd)/$(echo $PACKAGE)-latest.tgz && yarn --cwd $(echo $PACKAGE_DIR)/$(echo $PACKAGE) pack --filename $(pwd)/$(echo $PACKAGE)-latest.tgz && YARN_CACHE_FOLDER=/tmp/yarn yarn add file:$(pwd)/$(echo $PACKAGE)-latest.tgz && rm -rf /tmp/yarn
# make sure you're signed into npm before publishing
# yarn publishing is broken so lerna uses npm
npm whoami
# ensure everything is up2date and peachy
yarn
yarn bootstrap
yarn lerna link
yarn build
yarn test
# Phew, let's publish these packages!
# - Will publish all changed packages
# - Will ask for new pkg version per package
# - Will updated inter-package dependency versions automatically
yarn lerna publish
# Fix new dependency version symlinks
yarn bootstrap && yarn lerna link