diff --git a/plugins/woo-ai/changelog/43769-add-woo-ai-watch b/plugins/woo-ai/changelog/43769-add-woo-ai-watch new file mode 100644 index 00000000000..978ed47d026 --- /dev/null +++ b/plugins/woo-ai/changelog/43769-add-woo-ai-watch @@ -0,0 +1,4 @@ +Significance: patch +Type: dev +Comment: This PR only affects build tooling and no change entry is required. + diff --git a/plugins/woo-ai/package.json b/plugins/woo-ai/package.json index 0b9e2b72474..256ce263e1a 100644 --- a/plugins/woo-ai/package.json +++ b/plugins/woo-ai/package.json @@ -12,17 +12,17 @@ "homepage": "http://github.com/woocommerce/woo-ai", "devDependencies": { "@babel/preset-react": "7.23.3", + "@babel/preset-typescript": "7.23.2", "@svgr/webpack": "^8.1.0", - "@testing-library/react": "12.1.5", "@testing-library/dom": "9.3.3", "@testing-library/jest-dom": "5.16.5", + "@testing-library/react": "12.1.5", "@testing-library/react-hooks": "7.0.2", "@testing-library/user-event": "13.5.0", "@types/debug": "^4.1.12", "@types/jquery": "^3.5.29", "@types/react": "^17.0.71", "@types/react-dom": "^17.0.25", - "@babel/preset-typescript": "7.23.2", "@types/wordpress__components": "^19.10.5", "@woocommerce/dependency-extraction-webpack-plugin": "workspace:*", "@woocommerce/eslint-plugin": "workspace:*", @@ -39,19 +39,22 @@ "wireit": "0.14.3" }, "scripts": { - "build": "pnpm build:admin && pnpm uglify", - "build:admin": "wp-scripts build", + "build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'", "build:dev": "pnpm lint:js && pnpm build", + "build:project": "pnpm --if-present '/^build:project:.*$/'", + "build:project:wp-scripts": "wireit", "build:zip": "./bin/build-zip.sh", "changelog": "composer install && composer exec -- changelogger", "check-engines": "wp-scripts check-engines", "check-licenses": "wp-scripts check-licenses", "format:js": "wp-scripts format-js", "postinstall": "composer install", - "lint:css": "wp-scripts lint-style", - "lint:css:fix": "wp-scripts lint-style --fix", - "lint:js": "wp-scripts lint-js", - "lint:js:fix": "wp-scripts lint-js --fix", + "lint": "pnpm --if-present '/^lint:lang:.*$/'", + "lint:fix": "pnpm --if-present '/^lint:fix:lang:.*$/'", + "lint:fix:lang:css": "wp-scripts lint-style --fix", + "lint:fix:lang:js": "wp-scripts lint-js --fix", + "lint:lang:css": "wp-scripts lint-style", + "lint:lang:js": "wp-scripts lint-js", "lint:md:docs": "wp-scripts lint-md-docs", "lint:md:js": "wp-scripts lint-md-js", "lint:pkg-json": "wp-scripts lint-pkg-json", @@ -59,7 +62,10 @@ "start": "wp-scripts start", "test:e2e": "wp-scripts test-e2e", "test:unit": "wp-scripts test-unit-js --config tests/js/jest.config.js", - "uglify": "rm -f $npm_package_assets_js_min && for f in $npm_package_assets_js_js; do file=${f%.js}; node_modules/.bin/uglifyjs $f -c -m > $file.min.js; done" + "uglify": "rm -f $npm_package_assets_js_min && for f in $npm_package_assets_js_js; do file=${f%.js}; node_modules/.bin/uglifyjs $f -c -m > $file.min.js; done", + "watch:build": "pnpm --if-present --workspace-concurrency=Infinity --filter=\"$npm_package_name...\" --parallel '/^watch:build:project:.*$/'", + "watch:build:project": "pnpm --if-present run '/^watch:build:project:.*$/'", + "watch:build:project:wp-scripts": "wireit" }, "dependencies": { "@automattic/tour-kit": "^1.1.1", @@ -101,5 +107,24 @@ "*.scss": [ "npm run lint:css:fix" ] + }, + "wireit": { + "build:project:wp-scripts": { + "command": "wp-scripts build", + "clean": "if-file-deleted", + "files": [ + "babel.config.js", + "tsconfig.json", + "webpack.config.js", + "src/*" + ], + "output": [ + "build" + ] + }, + "watch:build:project:wp-scripts": { + "command": "wp-scripts start", + "service": true + } } }