」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何從頭開始啟動 Shadcn 項目

如何從頭開始啟動 Shadcn 項目

發佈於2024-11-08
瀏覽:146

How to start a Shadcn project from scratch

使用Tailwind CSSShadcn 從頭開始設定項目,但不使用任何預先建置項目的樣板,如create-next-app 或create-react-app,您可以使用Webpack 或其他類似的捆綁器手動配置設定。以下是使用 Webpack:

進行設定的指南

第 1 步:初始化 npm 項目

建立新的專案目錄並初始化新的npm專案:

mkdir my-shadcn-app
cd my-shadcn-app
npm init -y

步驟2:安裝React和依賴項

安裝ReactReactDOMwebpackwebpack-dev-server

npm install react react-dom
npm install --save-dev webpack webpack-cli webpack-dev-server babel-loader @babel/core @babel/preset-env @babel/preset-react html-webpack-plugin

第 3 步:安裝 Tailwind CSS

安裝Tailwind CSS及其對等依賴:

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init

這將建立 tailwind.config.js 檔案。

第 4 步:設定 Webpack

建立用於設定Webpack的webpack.config.js檔案:

touch webpack.config.js

在 webpack.config.js 中,加入以下內容:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.jsx',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react'],
          },
        },
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader', 'postcss-loader'],
      },
    ],
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/index.html',
    }),
  ],
  devServer: {
    static: './dist',
    hot: true,
  },
};

第 5 步:設定 Babel

建立 .babelrc 檔案用於 Babel 設定:

touch .babelrc

在.babelrc中,加入以下內容:

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

第 6 步:設定 Tailwind CSS

更新 tailwind.config.js 檔案以包含元件的路徑:

tailwind.config.js:

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],
  theme: {
    extend: {},
  },
  plugins: [],
};

第 7 步:設定項目結構

為您的 React 應用程式建立必要的資料夾和檔案:

mkdir src public
touch src/index.jsx src/App.jsx src/index.css public/index.html

公共/index.html:


  
    
    
    My Shadcn App
  
  
    

src/index.jsx:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';

ReactDOM.render(, document.getElementById('root'));

src/App.jsx:

import React from 'react';

const App = () => {
  return (
    

Hello Shadcn!

); }; export default App;

src/index.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

第8步:安裝Shadcn組件

現在您已經完成了基本設置,請安裝 Shadcn 軟體包及其組件。為您的 React 專案安裝 Shadcn CLI 和 Tailwind 元件:

npx shadcn-init

請依照螢幕上的指示安裝元件並為您的專案產生 Shadcn 庫。

第 9 步:更新 npm 腳本

更新 package.json 以新增啟動腳本來執行 Webpack 開發伺服器:

"scripts": {
  "start": "webpack serve --open"
}

第10步:啟動開發伺服器

使用以下命令運行開發伺服器:

npm start

這應該會在瀏覽器中打開您的應用程序,您將看到“Hello Shadcn!”使用 Tailwind CSS 進行樣式設定。現在您可以繼續將 Shadcn 元件新增到您的 React 專案中。

(AI輔助生成)

版本聲明 本文轉載於:https://dev.to/opensourcee/how-to-start-a-shadcn-project-from-scratch-44ln?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Android如何向PHP服務器發送POST數據?
    Android如何向PHP服務器發送POST數據?
    在android apache httpclient(已棄用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    程式設計 發佈於2025-05-03
  • 如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    如何解決由於Android的內容安全策略而拒絕加載腳本... \”錯誤?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    程式設計 發佈於2025-05-03
  • 查找當前執行JavaScript的腳本元素方法
    查找當前執行JavaScript的腳本元素方法
    如何引用當前執行腳本的腳本元素在某些方案中理解問題在某些方案中,開發人員可能需要將其他腳本動態加載其他腳本。但是,如果Head Element尚未完全渲染,則使用document.getElementsbytagname('head')[0] .appendChild(v)的常規方...
    程式設計 發佈於2025-05-03
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-05-03
  • 為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    使用php dateTime修改月份:發現預期的行為在使用PHP的DateTime類時,添加或減去幾個月可能並不總是會產生預期的結果。正如文檔所警告的那樣,“當心”這些操作的“不像看起來那樣直觀。 考慮文檔中給出的示例:這是內部發生的事情: 現在在3月3日添加另一個月,因為2月在2001年只有2...
    程式設計 發佈於2025-05-03
  • Java字符串非空且非null的有效檢查方法
    Java字符串非空且非null的有效檢查方法
    檢查字符串是否不是null而不是空的if (str != null && !str.isEmpty())Option 2: str.length() == 0For Java versions prior to 1.6, str.length() == 0 can be二手: if(str!= n...
    程式設計 發佈於2025-05-03
  • Python高效去除文本中HTML標籤方法
    Python高效去除文本中HTML標籤方法
    在Python中剝離HTML標籤,以獲取原始的文本表示 僅通過Python的MlStripper 來簡化剝離過程,Python Standard庫提供了一個專門的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    程式設計 發佈於2025-05-03
  • 如何將來自三個MySQL表的數據組合到新表中?
    如何將來自三個MySQL表的數據組合到新表中?
    mysql:從三個表和列的新表創建新表 答案:為了實現這一目標,您可以利用一個3-way Join。 選擇p。 *,d.content作為年齡 來自人為p的人 加入d.person_id = p.id上的d的詳細信息 加入T.Id = d.detail_id的分類法 其中t.taxonomy ...
    程式設計 發佈於2025-05-03
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    程式設計 發佈於2025-05-03
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-05-03
  • 在Go語言中如何簡潔定義10的冪常量
    在Go語言中如何簡潔定義10的冪常量
    在GO 利用浮點線文字一種簡潔的方式是使用浮點文字,該方法是使用floingpoint protals。寫作1E3比寫作1000更有效。這是一個示例(67個沒有空間的字符):的文字用於未構圖的整數常數,我們可以將1000用於KB,並用KB將隨後的常量乘以KB,如下所示(77個沒有空格的字符):,作...
    程式設計 發佈於2025-05-03
  • 如何處理PHP文件系統功能中的UTF-8文件名?
    如何處理PHP文件系統功能中的UTF-8文件名?
    在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    程式設計 發佈於2025-05-03
  • Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    在ASP.NET async void void async void void void void void void void的設計無需返回asynchroncon而無需返回任務對象。他們在執行過程中增加未償還操作的計數,並在完成後減少。在某些情況下,這種行為可能是有益的,例如未期望或明確...
    程式設計 發佈於2025-05-03
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-05-03
  • HTML格式標籤
    HTML格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2025-05-03

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3