nsbp-cli 0.2.11 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -147,7 +147,7 @@ node ./bin/nsbp.js --help # Test CLI locally
|
|
|
147
147
|
|
|
148
148
|
- **Package Name**: `nsbp-cli`
|
|
149
149
|
- **Bin Command**: `nsbp` (install globally and run `nsbp --help`)
|
|
150
|
-
- **Version**: `0.2.
|
|
150
|
+
- **Version**: `0.2.14`
|
|
151
151
|
- **Dependencies**: chalk, commander, fs-extra, inquirer
|
|
152
152
|
- **Package Manager**: Uses pnpm (also compatible with npm)
|
|
153
153
|
- **Node Version**: >=16.0.0
|
package/package.json
CHANGED
|
@@ -52,6 +52,8 @@ import {
|
|
|
52
52
|
QuickStartTitle,
|
|
53
53
|
QuickStartCode,
|
|
54
54
|
QuickStartDescription,
|
|
55
|
+
DemoButtonLink,
|
|
56
|
+
DemoButtonIcon,
|
|
55
57
|
Footer
|
|
56
58
|
} from '../styled/home'
|
|
57
59
|
|
|
@@ -124,10 +126,11 @@ const Home: React.FC = () => {
|
|
|
124
126
|
}} />
|
|
125
127
|
<Helmet>
|
|
126
128
|
<title>Nsbp.js - 轻量级 React SSR 框架</title>
|
|
127
|
-
<meta name="description" content="Nsbp.js - 一个轻量级 React SSR 框架,专为低资源部署与高度可定制场景而生。与 Next.js
|
|
129
|
+
<meta name="description" content="Nsbp.js - 一个轻量级 React SSR 框架,专为低资源部署与高度可定制场景而生。与 Next.js 相比,更节省资源,更灵活配置。查看线上演示:https://nsbp.erishen.cn/" />
|
|
128
130
|
<meta name="keywords" content="Nsbp.js, React SSR, 轻量级, SSR, TypeScript, React 19" />
|
|
129
131
|
<meta property="og:title" content="Nsbp.js - 轻量级 React SSR 框架" />
|
|
130
|
-
<meta property="og:description" content="与 Next.js 相比,Nsbp.js
|
|
132
|
+
<meta property="og:description" content="与 Next.js 相比,Nsbp.js 更轻量、更灵活、更可控。查看线上演示:https://nsbp.erishen.cn/" />
|
|
133
|
+
<meta property="og:url" content="https://nsbp.erishen.cn/" />
|
|
131
134
|
</Helmet>
|
|
132
135
|
|
|
133
136
|
<Layout query={{}}>
|
|
@@ -148,6 +151,17 @@ const Home: React.FC = () => {
|
|
|
148
151
|
完全掌控 Webpack 配置,无黑盒限制
|
|
149
152
|
</HeroSubtitle>
|
|
150
153
|
|
|
154
|
+
<DemoButtonLink
|
|
155
|
+
href="https://nsbp.erishen.cn/"
|
|
156
|
+
target="_blank"
|
|
157
|
+
rel="noopener noreferrer"
|
|
158
|
+
className="fade-in"
|
|
159
|
+
style={{animationDelay: '0.4s'}}
|
|
160
|
+
>
|
|
161
|
+
<DemoButtonIcon>🌐</DemoButtonIcon>
|
|
162
|
+
查看线上演示
|
|
163
|
+
</DemoButtonLink>
|
|
164
|
+
|
|
151
165
|
<HeroStats>
|
|
152
166
|
<StatCard>
|
|
153
167
|
<StatValue>~60%</StatValue>
|
|
@@ -776,6 +776,67 @@ export const QuickStartDescription = styled.p`
|
|
|
776
776
|
margin-top: 1rem;
|
|
777
777
|
`
|
|
778
778
|
|
|
779
|
+
// ============================================
|
|
780
|
+
// Demo Button(线上演示按钮)
|
|
781
|
+
// ============================================
|
|
782
|
+
|
|
783
|
+
export const DemoButtonLink = styled.a`
|
|
784
|
+
display: inline-flex;
|
|
785
|
+
align-items: center;
|
|
786
|
+
justify-content: center;
|
|
787
|
+
gap: 0.5rem;
|
|
788
|
+
padding: 1rem 2rem;
|
|
789
|
+
background: rgba(255, 255, 255, 0.15);
|
|
790
|
+
backdrop-filter: blur(10px);
|
|
791
|
+
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
792
|
+
border-radius: 12px;
|
|
793
|
+
color: #ffffff;
|
|
794
|
+
font-size: 1.1rem;
|
|
795
|
+
font-weight: 600;
|
|
796
|
+
text-decoration: none;
|
|
797
|
+
transition: all 0.3s ease;
|
|
798
|
+
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
|
799
|
+
position: relative;
|
|
800
|
+
overflow: hidden;
|
|
801
|
+
|
|
802
|
+
&::before {
|
|
803
|
+
content: '';
|
|
804
|
+
position: absolute;
|
|
805
|
+
top: 0;
|
|
806
|
+
left: -100%;
|
|
807
|
+
width: 100%;
|
|
808
|
+
height: 100%;
|
|
809
|
+
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
|
|
810
|
+
animation: shine 2s infinite;
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
@keyframes shine {
|
|
814
|
+
0% { left: -100%; }
|
|
815
|
+
100% { left: 100%; }
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
&:hover {
|
|
819
|
+
background: rgba(255, 255, 255, 0.25);
|
|
820
|
+
border-color: rgba(255, 255, 255, 0.5);
|
|
821
|
+
transform: translateY(-2px);
|
|
822
|
+
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
&:active {
|
|
826
|
+
transform: translateY(0);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
@media (max-width: 768px) {
|
|
830
|
+
padding: 0.75rem 1.5rem;
|
|
831
|
+
font-size: 1rem;
|
|
832
|
+
}
|
|
833
|
+
`
|
|
834
|
+
|
|
835
|
+
export const DemoButtonIcon = styled.span`
|
|
836
|
+
font-size: 1.2rem;
|
|
837
|
+
display: inline-block;
|
|
838
|
+
`
|
|
839
|
+
|
|
779
840
|
// ============================================
|
|
780
841
|
// Footer
|
|
781
842
|
// ============================================
|