Closed8

11ty+vite構成でVanillajs開発環境構築をする

warugakiwarugaki

11ty + Vite

11ty のインストール

npm i -D @11ty/eleventy@2.0.0-canary.18 @11ty/eleventy-plugin-vite

https://www.npmjs.com/package/@11ty/eleventy/v/2.0.0-canary.18?activeTab=versions

11tyの設定ファイルを作成

プロジェクトルートに.eleventy.jsを作成する

.eleventy.js
const EleventyVitePlugin = require('@11ty/eleventy-plugin-vite');

module.exports = (eleventyConfig) => {
  eleventyConfig.addPlugin(EleventyVitePlugin, {
    tempFolderName: '.11ty-vite', // Default name of the temp folder
    serverOptions: {},
    viteOptions: {
      clearScreen: false, // https://ja.vitejs.dev/config/shared-options.html#clearscreen
      server: {
        mode: 'development',
        middlewareMode: true,
      },
      build: {
        mode: 'production',
      },
    },
  });

  // Copy/pass-through files
  eleventyConfig.addPassthroughCopy('src/assets/css');
  eleventyConfig.addPassthroughCopy('src/assets/js');

  return {
    templateFormats: ['njk', 'html'],
    htmlTemplateEngine: 'njk',
    passthroughFileCopy: true,
    dir: {
      input: 'src',
      output: 'build',
      includes: '_includes',
      layouts: '_layouts',
      data: '_data',
    },
  };
};

コマンドを追加

package.json
{
  "name": "vanilla-js-learning-output-code",
  "version": "1.0.0",
  "engines": {
    "node": "18.12.1",
    "npm": "8.19.2"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "format:check": "prettier --check --ignore-path .gitignore './**/*.{js,ts,json,css}'",
    "format:fix": "prettier --write --ignore-path .gitignore './**/*.{js,ts,json,css}'"
  },
  "author": "warugaki",
  "license": "MIT",
  "devDependencies": {
    "@11ty/eleventy": "^1.0.2",
    "@11ty/eleventy-plugin-vite": "^1.0.0",
    "prettier": "^2.8.0"
  }
}

ビルドフォルダをクリーンアップできるように

npm i -D rimraf

vscodeの設定

  • .njk関連拡張機能をインストール
    • ハイライト
    • emmetが実行できるように
    • 保存にフォーマットできるように

https://marketplace.visualstudio.com/items?itemName=ronnidc.nunjucks

https://marketplace.visualstudio.com/items?itemName=eseom.nunjucks-template

{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
+  "[nunjucks]": {
+    "editor.defaultFormatter": "okitavera.vscode-nunjucks-formatter"
+  },
+  "emmet.includeLanguages": {
+    "njk": "html",
+    "nunjucks": "html"
+  }
}

参考

https://www.11ty.dev/docs/server-vite/

過去につくったやつ
https://github.com/warugaki-web-developer/static-site-ssg-using-11ty

やったこと

このスクラップは2022/11/27にクローズされました