npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@yutahaga/wp-vue-config

v0.3.0

Published

vue.config.js for WordPress

Downloads

4

Readme

wp-vue-config

WordPress のための vue.config.js を簡単にセットアップできるユーティリティーです。

vue-cli に加えてこのユーティリティーを使うと、Vue.js を使わない場合にも簡単に WordPress テーマの開発環境を構築できます。

Featured

  • HMR 対応
  • PHP ファイルの変更時に強制リロード
  • アセットマニフェストの生成
  • Stylelint
  • gzip, brotli ファイルの生成
  • 外部変数 jquery, wordpress の追加
  • editor-style.css、customizer.js の生成
  • サービスワーカーの生成
  • 不要なプラグインなどの除去
  • Sass / SCSS ファイル内での glob インポート
  • アセットパスの変数を Sass / SCSS へ提供
  • Sass 内で Tailwind CSS の config 関数を使用した数値・色の計算を行える機能

Getting Started

Install

yarn add @yutahaga/wp-vue-config -D

Usage

vue.config.js

/* eslint-disable import/no-extraneous-dependencies */
const wpVueConfig = require('@yutahaga/wp-vue-config');

module.exports = wpVueConfig({
  // Options
});

.env

モジュール内部でいくつかの環境変数を使用しています。 vue.config.js での設定 > 環境変数 > デフォルト設定 の順で優先されます。

vue-cli の環境ファイルについての扱いはこちらをご覧ください。

# WordPress サイトの URL (必須)
VUE_APP_SITE_URL="http://example.local"

# アセットファイルの提供元 URL (デフォルトは "http://localhost:8080")
# 主に開発環境で使います
VUE_APP_ASSETS_PROVIDER_URL="http://localhost:8080"

# アセットファイルの公開パス (必須)
VUE_APP_ASSETS_PUBLIC_PATH="/wp-content/themes/mytheme/assets/"

# Webpack Dev Server でプロキシする WordPress のルート
# 主に開発環境で使います。
# "/wp/" にすると http://localhost:8080/wp/ 以下に WordPress が配置されます。
VUE_APP_WP_PROXY_ROUTE="/wp/"

# Workbox で使うキャッシュ ID
VUE_APP_WORKBOX_CACHE_ID="mytheme"

Options

vue.config.js のオプションで上書きできます。 また、下記の独自オプションで設定を簡単に切り替えることが出来ます。

{
  /**
   * このモジュールで読み込む chainWebpack 設定を機能単位で除外できます
   * 機能一覧は lib/chain-webpack/index.js を参照ください
   *
   * type: Array<string>
   * default: []
   */
  chainWebpackModuleExcludes: [
    'editorStyle',
    'gzip',
  ],

  /**
   * 各機能モジュールへ渡すオプションです
   * 各機能モジュールのオプションについては lib/chain-webpack/ 以下のファイルをご覧ください
   *
   * type: {
   *   [key: string]: Object;
   * }
   * default: {}
   */
  chainWebpackModuleConfigs: {
    customizer: {
      fileName: './src/my-customizer.js',
    },
  },

  /**
   * Webpack Dev Server でプロキシする WordPress のルート
   * 環境変数 VUE_APP_WP_PROXY_ROUTE を上書きします
   *
   * default: /wp/
   */
  proxyRoute: '/home/'
}

Sass / SCSS

このモジュールは Sass / SCSS の変数に一部の環境変数を割り当てます。 $env-public-path を使って画像の URL などを取得する関数を作ると便利です。

$env-node-env
$env-public-path
@function img-url($path) {
  $base-path: '#{$env-public-path}img/';

  @return url(#{$base-path}#{$path});
}

.my-logo {
  background: img-url('common/logo.svg') no-repeat;
}