{"id":18174,"date":"2024-04-11T05:53:32","date_gmt":"2024-04-11T12:53:32","guid":{"rendered":"https:\/\/ioflood.com\/blog\/?p=18174"},"modified":"2024-04-11T05:53:49","modified_gmt":"2024-04-11T12:53:49","slug":"webpack-npm","status":"publish","type":"post","link":"https:\/\/ioflood.com\/blog\/webpack-npm\/","title":{"rendered":"Webpack &#038; NPM | Setup and Integration Guide"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/ioflood.com\/blog\/wp-content\/uploads\/2024\/03\/Terminal-screen-illustrating-npm-install-webpack-command-300x300.jpg\" alt=\"Terminal screen illustrating npm install webpack command\" width=\"300\" height=\"300\" title=\"\"><\/figure>\n<\/div>\n<p>At IOFLOOD, we needed to find a way to efficiently bundle our project files, especially when working with JavaScript applications. We&#8217;ve found that using Webpack with npm provides the solution we needed. That&#8217;s why we&#8217;ve put together a guide on how to use Webpack with npm. By following our straightforward instructions, you&#8217;ll be equipped to manage and bundle your project files, ensuring smooth project deployment.<\/p>\n<p><strong>This guide will navigate you through the basics to advanced techniques of integrating webpack with npm,<\/strong> ensuring a smooth development process. Whether you&#8217;re just starting out or looking to refine your workflow, this article aims to provide you with a comprehensive understanding of how these powerful tools work together to streamline your projects.<\/p>\n<p>Let&#8217;s simplify the process of bundling JavaScript files together and enhance our project workflows!<\/p>\n<h2>TL;DR: How Do I Use Webpack with NPM?<\/h2>\n<blockquote><p>\n  To utilize Webpack with npm, begin by installing Webpack locally with the command <code>npm install --save-dev webpack<\/code>. This must be installed within your project.\n<\/p><\/blockquote>\n<p>For example:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev webpack\n<\/code><\/pre>\n<p>Then, you can run webpack using npx or by adding it as a script in your package.json. This basic setup is your entry into the world of modern web development, leveraging webpack&#8217;s powerful bundling capabilities in conjunction with npm&#8217;s vast repository of packages.<\/p>\n<p>Here&#8217;s a quick example of adding a webpack script to your <code>package.json<\/code>:<\/p>\n<pre><code class=\"language-json line-numbers\">\"scripts\": {\n    \"build\": \"webpack\"\n}\n<\/code><\/pre>\n<p>After adding the script, you can run webpack through npm by executing:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm run build\n\n# Output:\n# This will execute the webpack build process based on your `webpack.config.js` settings.\n<\/code><\/pre>\n<blockquote><p>\n  This is just the beginning of what you can achieve with webpack and npm. Continue reading for more detailed setup, configuration, and advanced usage scenarios.\n<\/p><\/blockquote>\n<h2>The Basics: Webpack &amp; NPM<\/h2>\n<p>Embarking on your journey with webpack and npm begins with a few simple steps. This section will guide you through installing webpack using npm, creating your first webpack configuration file, and running your first build. Each of these steps is a building block in mastering web development with these powerful tools.<\/p>\n<h3>Installing Webpack<\/h3>\n<p>The first step is to install webpack along with webpack-cli (the command line interface for webpack), which allows you to run webpack commands. Execute the following command in your project&#8217;s root directory:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev webpack webpack-cli\n\n# Output:\n# + webpack@\n# + webpack-cli@\n<\/code><\/pre>\n<p>This command installs webpack and webpack-cli as development dependencies in your project, ensuring they are only used in the development environment. The output indicates the successful installation of webpack and its CLI with their respective versions.<\/p>\n<h3>Creating a Webpack Configuration File<\/h3>\n<p>Once webpack is installed, the next step is to create a basic <code>webpack.config.js<\/code> file. This file tells webpack how to behave and process your project&#8217;s files.<\/p>\n<pre><code class=\"language-javascript line-numbers\">const path = require('path');\n\nmodule.exports = {\n  entry: '.\/src\/index.js',\n  output: {\n    path: path.resolve(__dirname, 'dist'),\n    filename: 'bundle.js'\n  }\n};\n<\/code><\/pre>\n<p>In this configuration, <code>entry<\/code> specifies the entry point file of your application, while <code>output<\/code> defines where to output the bundled files and what to name them. <code>path.resolve<\/code> ensures that the absolute path is used, which is crucial for avoiding errors in the webpack build process.<\/p>\n<h3>Running Your First Webpack Build<\/h3>\n<p>With the webpack configuration file in place, you can now run your first build. This process compiles your source code into a single bundled file that can be served to your users.<\/p>\n<pre><code class=\"language-bash line-numbers\">npx webpack\n\n# Output:\n# asset bundle.js 1.54 MiB [emitted] (name: main)\n# .\/src\/index.js 1 KiB [built]\n# webpack 5.x.x compiled successfully\n<\/code><\/pre>\n<p>This output shows that webpack has successfully created a <code>bundle.js<\/code> file from your <code>src\/index.js<\/code>. The size of the bundled file and the successful compilation message indicate that your setup is correct and ready for further development.<\/p>\n<p>Understanding these basic steps of using webpack with npm not only sets the foundation for more advanced concepts but also empowers you to streamline your web development process effectively.<\/p>\n<h2>Elevate Your Webpack Game<\/h2>\n<p>As you grow more comfortable with the basics of webpack and npm, it&#8217;s time to explore the more advanced features that can significantly enhance your development workflow. This section delves into loaders, plugins, and optimization techniques that are crucial for managing complex projects efficiently.<\/p>\n<h3>Utilizing Loaders<\/h3>\n<p>Loaders in webpack transform and bundle different types of files. They are powerful tools for incorporating preprocessors like Sass or Babel into your workflow. Here&#8217;s how you can add a CSS loader to your <code>webpack.config.js<\/code>:<\/p>\n<pre><code class=\"language-javascript line-numbers\">module.exports = {\n  module: {\n    rules: [\n      {\n        test: \/\\.css$\/,\n        use: ['style-loader', 'css-loader']\n      }\n    ]\n  }\n};\n<\/code><\/pre>\n<p>This configuration allows webpack to process <code>.css<\/code> files, injecting them into the DOM with the <code>style-loader<\/code> and interpreting <code>@import<\/code> and <code>url()<\/code> like <code>import\/require()<\/code> with the <code>css-loader<\/code>.<\/p>\n<h3>Integrating Plugins<\/h3>\n<p>Plugins offer a wide range of functionalities, from bundle optimization to environment variable injection. Here&#8217;s an example of adding the HtmlWebpackPlugin, which simplifies the creation of HTML files to serve your bundles:<\/p>\n<pre><code class=\"language-javascript line-numbers\">const HtmlWebpackPlugin = require('html-webpack-plugin');\n\nmodule.exports = {\n  plugins: [\n    new HtmlWebpackPlugin({\n      template: '.\/src\/index.html'\n    })\n  ]\n};\n<\/code><\/pre>\n<p>This plugin automatically generates an HTML file with your bundle injected, a vital step for web apps that rely on complex webpack configurations.<\/p>\n<h3>Streamlining Builds with NPM Scripts<\/h3>\n<p>Leveraging npm scripts can simplify the execution of webpack builds and other tasks. Instead of remembering complex command line instructions, you can define scripts in your <code>package.json<\/code>:<\/p>\n<pre><code class=\"language-json line-numbers\">\"scripts\": {\n  \"build\": \"webpack --mode production\",\n  \"dev\": \"webpack serve --open --mode development\"\n}\n<\/code><\/pre>\n<p>With these scripts, running <code>npm run build<\/code> will trigger a production build, optimizing your bundle for deployment, while <code>npm run dev<\/code> starts a development server and opens your project in the browser, enhancing your development experience.<\/p>\n<p>Understanding and applying these intermediate-level webpack and npm features will not only make your projects more robust but also significantly improve your productivity as a developer.<\/p>\n<h2>Exploring Beyond Webpack<\/h2>\n<p>While webpack is a powerful tool for module bundling in web development, it&#8217;s not the only player in the game. The npm ecosystem is rich with alternative tools that might better suit specific project needs. Understanding when to opt for webpack or pivot to another tool can significantly impact your project&#8217;s efficiency and performance.<\/p>\n<h3>Webpack vs. Parcel<\/h3>\n<p>Parcel prides itself on being a &#8216;zero configuration&#8217; bundler, which can be a game-changer for projects requiring a quick setup. Here&#8217;s a basic command to get started with Parcel:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev parcel-bundler\n\n# Output:\n# + parcel-bundler@&lt;version&gt;\n<\/code><\/pre>\n<p>After installation, you can run Parcel on your entry file without any configuration:<\/p>\n<pre><code class=\"language-bash line-numbers\">npx parcel src\/index.html\n\n# Output:\n# Server running at http:\/\/localhost:1234\n# Built in 8.78s.\n<\/code><\/pre>\n<p>This simplicity contrasts with webpack&#8217;s configuration-driven approach, making Parcel an excellent choice for projects where rapid development and simplicity are key.<\/p>\n<h3>Webpack vs. Rollup<\/h3>\n<p>Rollup, on the other hand, is known for its efficient handling of ES modules, making it ideal for libraries and applications prioritizing modern JavaScript. Here&#8217;s how you might set up Rollup:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev rollup\n\n# Output:\n# + rollup@&lt;version&gt;\n<\/code><\/pre>\n<p>Rollup&#8217;s focus on ES module syntax allows for smaller bundles and faster loading times, a critical factor for performance-sensitive applications.<\/p>\n<h3>Choosing the Right Tool<\/h3>\n<p>The decision between webpack, Parcel, and Rollup often comes down to the specific needs of your project. Webpack&#8217;s extensive plugin system and loader support make it a versatile choice for complex applications. However, for projects where simplicity and speed are more critical, Parcel&#8217;s zero-configuration approach or Rollup&#8217;s efficiency with ES modules might be more suitable.<\/p>\n<p>In the npm ecosystem, the choice of tooling is vast, and each project&#8217;s unique requirements will guide that choice. By understanding the strengths and limitations of webpack and its alternatives, developers can make informed decisions that best suit their project needs.<\/p>\n<h2>Troubleshooting Webpack and NPM<\/h2>\n<p>Even with a solid understanding of webpack and npm, developers may encounter hurdles that can disrupt the development workflow. This section covers common pitfalls, errors, and their solutions to ensure your projects run smoothly.<\/p>\n<h3>Version Conflicts<\/h3>\n<p>One of the frequent issues developers face is version conflicts between webpack and its loaders or plugins. This can result in unexpected behavior or build failures. To check your webpack version and ensure compatibility, use the following command:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm list webpack\n\n# Output:\n# webpack@&lt;your-version&gt;\n<\/code><\/pre>\n<p>Understanding the version of webpack you&#8217;re working with helps in troubleshooting compatibility issues. It&#8217;s crucial to consult the documentation of any plugins or loaders you&#8217;re using to ensure they support your webpack version.<\/p>\n<h3>Configuration Errors<\/h3>\n<p>A misconfigured <code>webpack.config.js<\/code> can lead to several issues, from failed builds to incorrect bundle outputs. One common mistake is incorrect path configurations. Here&#8217;s an example of how to set up your output path correctly:<\/p>\n<pre><code class=\"language-javascript line-numbers\">const path = require('path');\n\nmodule.exports = {\n  output: {\n    path: path.resolve(__dirname, 'dist'),\n    filename: 'bundle.js'\n  }\n};\n\n# Output:\n# Correctly configured output path ensures your bundled files are stored in the desired directory.\n<\/code><\/pre>\n<p>This configuration ensures that webpack outputs the bundled files to the <code>dist<\/code> directory in your project. The <code>path.resolve<\/code> method is used to avoid path-related errors by providing an absolute path.<\/p>\n<h3>Performance Issues<\/h3>\n<p>Webpack builds can become slow as projects grow, affecting development speed. One way to improve build performance is by using the <code>cache<\/code> option, which caches the generated webpack modules and chunks to improve rebuild speed.<\/p>\n<pre><code class=\"language-javascript line-numbers\">module.exports = {\n  cache: {\n    type: 'filesystem'\n  }\n};\n\n# Output:\n# Enabling caching can significantly reduce build times during development.\n<\/code><\/pre>\n<p>Enabling file system caching tells webpack to store build information on the disk. This can drastically reduce build times, especially for large projects, by reusing previously computed module information.<\/p>\n<p>Addressing these common issues not only ensures a smoother development process but also enhances the efficiency and reliability of your web development projects. By adopting these best practices, developers can mitigate the challenges associated with using webpack and npm together.<\/p>\n<h2>Web Development and Webpack<\/h2>\n<p>In the realm of modern web development, understanding the core concepts of module bundling and package management is paramount. This knowledge not only empowers developers to streamline their development workflows but also enhances the performance and efficiency of the applications they build.<\/p>\n<h3>The Role of Webpack<\/h3>\n<p>Webpack serves as a module bundler, a tool that compiles modules with dependencies into static assets. It&#8217;s designed to manage and understand the relationships between modules, transforming them into browser-friendly formats. Here&#8217;s a basic example of how webpack bundles modules:<\/p>\n<pre><code class=\"language-javascript line-numbers\">import { add } from '.\/math.js';\n\nconsole.log(add(2, 3));\n\n\/\/ Output:\n\/\/ 5\n<\/code><\/pre>\n<p>In this code block, webpack would bundle the <code>math.js<\/code> module along with the main file, ensuring that all dependencies are resolved and compiled into a single file. This process significantly reduces the number of HTTP requests required to load a web application, leading to faster loading times.<\/p>\n<h3>Understanding NPM<\/h3>\n<p>NPM, or Node Package Manager, plays a crucial role in package management. It allows developers to share and reuse code, and it&#8217;s an essential tool for installing and managing dependencies in modern web development. An example command to install a package using npm is:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install lodash\n\n# Output:\n# + lodash@&lt;version&gt;\n<\/code><\/pre>\n<p>This command installs the <code>lodash<\/code> library, a utility library offering a wide range of functions for JavaScript developers. NPM handles the downloading, installation, and management of such packages, making it easier for developers to incorporate external libraries and tools into their projects.<\/p>\n<h3>Webpack and NPM: A Synergistic Relationship<\/h3>\n<p>Webpack and npm complement each other in the web development ecosystem. Webpack&#8217;s module bundling capabilities, combined with npm&#8217;s extensive package management features, streamline the development process. This synergy allows developers to efficiently manage project dependencies and bundle them into optimized, production-ready assets.<\/p>\n<p>The evolution of these tools has significantly influenced the web development landscape, shifting the focus towards modular, maintainable, and high-performance web applications. Understanding the fundamentals of webpack and npm is not just about mastering the tools; it&#8217;s about embracing a philosophy of efficient web development that leverages the strengths of these powerful technologies.<\/p>\n<h2>Further Usage Cases of Webpack<\/h2>\n<p>As your journey with webpack and npm progresses, integrating these tools with other technologies can unlock even greater potential in your web development projects. This section explores how webpack can be combined with Babel, React, and TypeScript to create robust, scalable, and modern web applications.<\/p>\n<h3>Integrating Webpack with Babel<\/h3>\n<p>Babel is a JavaScript compiler that allows you to use next-generation JavaScript, today. By integrating Babel with webpack, you can ensure your JavaScript code is compatible across all browsers. Here&#8217;s a basic setup for using Babel with webpack:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev babel-loader @babel\/core @babel\/preset-env\n<\/code><\/pre>\n<pre><code class=\"language-javascript line-numbers\">module.exports = {\n  module: {\n    rules: [\n      {\n        test: \/\\.js$\/,\n        exclude: \/node_modules\/,\n        use: {\n          loader: 'babel-loader',\n          options: {\n            presets: ['@babel\/preset-env']\n          }\n        }\n      }\n    ]\n  }\n};\n<\/code><\/pre>\n<p>This configuration allows webpack to process your JavaScript files with Babel, transforming ES6 and beyond into a format that can be understood by older browsers. The result is a more inclusive web experience for users across different platforms and devices.<\/p>\n<h3>Leveraging React with Webpack and NPM<\/h3>\n<p>React is a popular JavaScript library for building user interfaces. Combining React with webpack enhances your development workflow by bundling your React components and assets efficiently. Here&#8217;s how you can set up React with webpack:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev react react-dom\n<\/code><\/pre>\n<p>This command installs React and ReactDOM as development dependencies, allowing you to start building React components within your webpack-managed project.<\/p>\n<h3>TypeScript: Adding Types to JavaScript<\/h3>\n<p>TypeScript brings static typing to JavaScript, improving developer productivity and code quality. Integrating TypeScript with webpack is straightforward, thanks to TypeScript&#8217;s compatibility with the npm ecosystem. Here&#8217;s a simple TypeScript setup with webpack:<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev typescript ts-loader\n<\/code><\/pre>\n<pre><code class=\"language-javascript line-numbers\">module.exports = {\n  module: {\n    rules: [\n      {\n        test: \/\\.ts$\/,\n        use: 'ts-loader',\n        exclude: \/node_modules\/\n      }\n    ]\n  }\n};\n<\/code><\/pre>\n<p>This setup enables webpack to handle TypeScript files, compiling them into JavaScript that browsers can interpret, thereby combining the power of static typing with webpack&#8217;s bundling capabilities.<\/p>\n<h3>Further Resources for Webpack and NPM Mastery<\/h3>\n<p>To deepen your understanding and skills in using webpack and npm, here are three valuable resources:<\/p>\n<ul>\n<li>The official <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/webpack.js.org\/concepts\/\" target=\"_blank\" rel=\"noopener\">Webpack Documentation<\/a> provides comprehensive guides, concepts, and API references.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/docs.npmjs.com\/\" target=\"_blank\" rel=\"noopener\">NPM Documentation<\/a> is an excellent resource for understanding package management, scripts, and more.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/integrating-with-build-tools.html#webpack\" target=\"_blank\" rel=\"noopener\">TypeScript and Webpack<\/a> &#8211; This guide offers insights on integrating TypeScript with webpack.<\/p>\n<\/li>\n<\/ul>\n<p>Exploring these resources will not only enhance your proficiency with webpack and npm but also equip you with the knowledge to integrate these tools with other technologies in your web development stack.<\/p>\n<h2>Wrap Up: NPM Webpack Usage Guide<\/h2>\n<p>In this comprehensive guide, we&#8217;ve navigated through the essential steps to effectively use webpack with npm, highlighting the significance of these tools in modern web development. From the initial setup to exploring advanced features, our journey has equipped you with the knowledge to streamline your development process.<\/p>\n<p>We began with the basics, installing webpack with npm and crafting a simple <code>webpack.config.js<\/code> file. This foundation enabled us to run our first webpack build, an important milestone in understanding how webpack transforms and bundles our project&#8217;s files.<\/p>\n<pre><code class=\"language-bash line-numbers\">npm install --save-dev webpack webpack-cli\n\n# Output:\n# webpack and webpack-cli installed\n<\/code><\/pre>\n<p>This command installs webpack and its CLI as development dependencies, marking the first step in our webpack journey. The importance of this step cannot be overstated, as it sets the stage for all subsequent webpack operations.<\/p>\n<p>Moving forward, we delved into more complex configurations, leveraging loaders and plugins to handle various file types and enhance our project&#8217;s functionality. We also explored how npm scripts can simplify the execution of webpack builds, making our workflow more efficient.<\/p>\n<pre><code class=\"language-javascript line-numbers\">module.exports = {\n  plugins: [\n    new HtmlWebpackPlugin({ template: '.\/src\/index.html' })\n  ]\n};\n\n# Output:\n# HtmlWebpackPlugin simplifies the creation of HTML files\n<\/code><\/pre>\n<p>This snippet demonstrates adding the HtmlWebpackPlugin to our webpack configuration, automating the generation of an HTML file for our project. It&#8217;s a clear example of how plugins can significantly improve our development process.<\/p>\n<p>We also considered alternative tools available through npm, weighing the pros and cons of webpack against other module bundlers. This comparison is crucial for understanding when webpack is the best tool for the job and when another tool might better suit a project&#8217;s needs.<\/p>\n<table>\n<thead>\n<tr>\n<th>Tool<\/th>\n<th>Flexibility<\/th>\n<th>Ease of Use<\/th>\n<th>Feature Set<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Webpack<\/td>\n<td>High<\/td>\n<td>Moderate<\/td>\n<td>Extensive<\/td>\n<\/tr>\n<tr>\n<td>Parcel<\/td>\n<td>Moderate<\/td>\n<td>High<\/td>\n<td>Moderate<\/td>\n<\/tr>\n<tr>\n<td>Rollup<\/td>\n<td>Moderate<\/td>\n<td>Moderate<\/td>\n<td>Focused<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As we wrap up, it&#8217;s clear that mastering webpack and npm is about more than just learning commands and configurations. It&#8217;s about understanding how these tools fit into the larger picture of web development, enabling us to build more efficient, scalable, and maintainable applications.<\/p>\n<p>Whether you&#8217;re just starting out or looking to deepen your understanding of webpack and npm, this guide has laid the groundwork for you to explore these tools further. The journey of learning never truly ends, but with the foundation we&#8217;ve built together, you&#8217;re well-equipped to tackle the challenges and opportunities of modern web development. Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At IOFLOOD, we needed to find a way to efficiently bundle our project files, especially when working with JavaScript applications. We&#8217;ve found that using Webpack with npm provides the solution we needed. That&#8217;s why we&#8217;ve put together a guide on how to use Webpack with npm. By following our straightforward instructions, you&#8217;ll be equipped to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":18860,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125,155,121],"tags":[],"class_list":["post-18174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-node-js","category-programming-coding","cat-125-id","cat-155-id","cat-121-id","has_thumb"],"_links":{"self":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/18174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/comments?post=18174"}],"version-history":[{"count":16,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/18174\/revisions"}],"predecessor-version":[{"id":19013,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/18174\/revisions\/19013"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media\/18860"}],"wp:attachment":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media?parent=18174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/categories?post=18174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/tags?post=18174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}