你对npm init的了解可能还不够深入吧?

简介: 印象里面大家可能对它的记忆可能都停留在,npm init之后是快速的初始化package.json,并通过交互式的命令行让我们输入需要的字段值,当然如果想直接使用默认值,也可以使用npm init -y快速生成一个简单默认的package.json。

image.png


1、前言


之前写过一篇关于如何发布一个npm包到npmjs,有兴趣的可以看一下这篇文章 juejin.cn/post/712782…


主要代码如下所示


// package.json中的bin路径脚本
  "bin": {
    "create-ak-vue": "./bin/vue.js",
    "create-ak-vite": "./bin/vite.js"
  },


然后bin文件夹下两个文件的代码分别为


// vite.js
#! /usr/bin/env node
console.log('vite.1js')
console.log('vite.2js')
// vue.js
#! /usr/bin/env node
console.log('vue.js')
console.log('vue.js')


大致的代码就是这样了,现在假设一下,我们的代码已经发布出去了,那么开始安装


// 全局安装aehyok-cli
npm i aehyok-cli -g
// 然后执行
create-ak-vue 
create-ak-vite
// 或者下面两个
npm create ak-vue
npm create ak-vite
// 再或者下面两个
npm init ak-vue
npm init ak-vite


执行效果如下


可以发现这三种情况实现了同样的功能


2、npm init、npm create


印象里面大家可能对它的记忆可能都停留在,npm init之后是快速的初始化package.json,并通过交互式的命令行让我们输入需要的字段值,当然如果想直接使用默认值,也可以使用npm init -y快速生成一个简单默认的package.json。


create-app-react创建项目命令,官网链接可以直接查看 create-react-app.dev/docs/gettin…


//官网的三种命令
npx create-react-app my-app
npm init react-app my-app
yarn create react-app my-app
//我又发现npm create也是可以的
npm create react-app my-app


上述这些命令最终效果都是可以执行创建项目的


同样的vite创建项目的命令


//官网的命令
npm create vite@latest
yarn create vite
pnpm create vite
// 指定具体模板的
// npm 6.x 
npm create vite@latest my-vue-app --template vue 
//npm 7+, extra double-dash is needed: 
npm create vite@latest my-vue-app -- --template vue
yarn create vite my-vue-app --template vue
pnpm create vite my-vue-app --template vue


可以发现vite官网没有使用npx命令,不过我在我自己电脑上尝试了另外几个命令确实也是可以的


npx create-vite my-app
npm init vite my-app


image.png


通过上面的对比可以一个小问题,yarn create去官网查了是存在这个指令的,官网地址可看 classic.yarnpkg.com/en/docs/cli…


而对于npm create这个命令在npm官网是看不到的,但是在一篇博客中发现了更新日志


image.png


意思就是说npm create xxxnpm init xxx 以及yarn create xxx效果是一致的。那么我们来本文的命令行


// 我们是通过npm安装的,并且包名里是包含create的
npm i create-vite-pretty-lint
// 那么以下几种方式都可以使用的
npm init vite-pretty-lint
npm create vite-pretty-lint
yarn create vite-pretty-lint
npx create-vite-pretty-lint


3、npx


假如我们只在项目中安装了vite,那么node_modules.bin文件夹下是会存在vite指令的


image.png


如果我们想在该项目下执行该命令第一种方式便是


image.png


第二种方式就是直接在package.json的scripts属性下


image.png


关于npx的详细说明可以看一下阮一峰大佬的精彩分www.ruanyifeng.com/blog/2019/0…

4、总结


其实前言中的执行命令还可以添加一个


npx create-ak-vue


所以最后其实可以有四种方式去执行package.json中bin命令,总共有四种执行方式,真的太可怕了。

目录
相关文章
.vitepress执行了,npm init,npm,修改了scipt,出错了如何解决,vitepress的配置,结合up主成功版,能够实现侧边栏跳转,解决方法,一个一个尝试
.vitepress执行了,npm init,npm,修改了scipt,出错了如何解决,vitepress的配置,结合up主成功版,能够实现侧边栏跳转,解决方法,一个一个尝试
使用npm init需要注意的事情以及pageck.json文件介绍
使用npm init需要注意的事情以及pageck.json文件介绍
|
7月前
|
JavaScript
npm install没问题,但npm run dev的时候报Node Sass version 6.0.1 is incompatible with ^4.0.0 ^5.0.0
npm install没问题,但npm run dev的时候报Node Sass version 6.0.1 is incompatible with ^4.0.0 ^5.0.0
68 0
|
6月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
356 3
|
7月前
|
资源调度 JavaScript Linux
nvm, node.js, npm, yarn 安装配置
nvm, node.js, npm, yarn 安装配置
326 1
|
2月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
72 0
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
|
4月前
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
|
4月前
|
JavaScript
【Deepin 20系统】Jupyter notebook解决ValueError: Please install Node.js and npm before continuing installa
文章讨论了在Deepin 20系统上安装Jupyter Notebook的debug插件时出现的"ValueError: Please install Node.js and npm before continuing installation"错误,并提供了使用conda安装Node.js的解决方法。
145 1
|
4月前
Mac卸载 Node npm,升级 Node
Mac卸载 Node npm,升级 Node
75 0