返回顶部
首页 > 资讯 > 前端开发 > VUE >npm快速开发技巧有哪些
  • 809
分享到

npm快速开发技巧有哪些

2024-04-02 19:04:59 809人浏览 八月长安
摘要

这篇文章主要介绍npm快速开发技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.学习基本快捷方式我们从最基本的开始,学习最常见的npm快捷方式从长远来将会节省很多时间。安装

这篇文章主要介绍npm快速开发技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.学习基本快捷方式

我们从最基本的开始,学习最常见的npm快捷方式从长远来将会节省很多时间。

  • 安装  —  常规:npm install,简写:npm i。

  • 测试  —  常规:npm test,简写:npm t。

  • 帮助  —  常规:npm --help,简写:npm -h。

  • 全局标志 —  常规: --global,简写:-g。

  • 保存为开发依赖 - 常规: - save-dev,简写:-D。

  • npm init 默认值 - 常规:npm init --yes 或 npm init --force,简写:npm init -y 或 npm init -f

我们知道使用-save或-S来保存包,但现在这是个已经是默认值。要安装一个包而不保存它,可以使用 ——no-save标志。

不太常见的快捷键

还有一些不常见的快捷方式,如下:

安装包信息将加入到optionalDependencies(可选阶段的依赖)- 常规:--save-optional, 简写:-O。
精确安装指定模块版本 - 常规:--save-optional, 简写:-O。
如果需要在本地保存一个npm包,或者通过单个文件下载选择一组可用的包,可以使用--save-bundle或-B将它们捆绑在一起,并使用npm pack获得捆绑包。

根的快捷方式

. 符号通常用于表示应用程序的根目录,npm术语中的应用程序入口点,即package.JSON中指定为“main”的值

{
 "main": "index.js"
}

这个快捷方式也可以用于像npx create-React-app . 这样的命令。因此,可以运行npx create-react-app .,而不是使用 npx create-react-app my-app 创建一个新的my-app目录。

2. 设置默认npm init属性

当运行npm init开始一个新项目时,你可能会发现自己一次又一次地输入配置细节。假如,你可能是项目的主要负责人。有时为了节省时间,可以为这些字段设置默认值,如下所示:

npm config set init.author.name "Joe Bloggs"
npm config set init.author.email "JoebLoggs@gmail.com"
npm config set init.author.url "Joebloggs.com"
npm config set init.license "MIT"

要检查是否正确添加了这些属性,在终端输入 npm config edit查看配置文件信息。当然也j可以通过直接在打开的配置文件编辑信息。 如果要编辑全局npm设置,使用npm config edit -g。

要重新初始化默认设置,可以使用以下脚本。第一行用空字符串替换配置文件,第二行用默认设置重新填充配置文件。

echo "" > $(npm config get userconfig)
npm config edit

上面的脚本将重置用户默认值,下面的脚本将重置全局默认值

echo "" > $(npm config get globalconfig)
npm config --global edit

3. 让脚本跨平台兼容

任何在命令行上运行的代码都有兼容性问题的风险,特别是在windows和基于unix的系统(包括Maclinux)之间。如果你只处理特定的项目,那么这不是问题,但是在许多情况下,跨平台兼容性很有必要的:任何开放源码或协作项目,以及示例和教程项目,都应该能够工作,而不管操作系统是什么。

谢天谢地,解决方案很简单。有几个选项可供选择,但效果最好的是cross-env。使用npm i -D cross-env将其作为开发依赖项安装。然后在任何环境变量之前包括关键字cross-env,就像这样:

{
 "scripts": {
  "build": "cross-env node_ENV=production webpack --config build/wepack.config.js"
 }
}

cross-env是 实现跨平台兼容性的最无缝的方法,但还有其他两个流行的工具,它们可以帮助实现跨平台兼容性:

rimraf 可以安装在全球运行跨平台脚本
shellJS 是Unix shell命令在node.js api上的可移植实现。

4. 并行运行脚本

可以使用&&来依次运行两个或多个进程。但是并行运行脚本呢?为此,我们可以从各种npm包中进行选择。concurrent 和 npm-run-all 是最流行的解决方案。

首先通过 npm i -D concurrently 安装开发依赖。然后按照以下格式将其添加到脚本中:

{
 "start": "concurrently \"command1 arg\" \"command2 arg\""
}

5. 在不同的目录中运行脚本

有时,在不同的文件夹中拥有一个包含多个package.json文件的应用程序。 从根目录访问这些脚本会很方便,而不是每次要运行脚本时导航到不同的文件夹,有两种方法可以执行此操作。

第一种是手动 cd 并运行对应的命令:

cd folder && npm start && cd ..

但还有一个更优雅的解决方案,即使用--prefix标志指定路径:

npm start --prefix path/to/your/folder

下面是一个工作应用程序中此解决方案的示例,我们希望在前端(在客户机目录中)和后端(在服务器目录中)运行 npm start。

"start": "concurrently \"(npm start --prefix client)\" \"(npm start --prefix server)\"",

6. 延迟运行脚本直到端口准备就绪

通常,在开发全堆栈应用程序期间,咱们可能希望同时启动服务器和客户端。wait-on 节点模块提供了一种方便的方法来确保进程只在某些进程就绪时发生:在我们的例子中,我们有一个特定的端口。

例如,这是我在使用React前端的Electron项目中使用的dev脚本。 同时使用,脚本并行加载表示层和Electron窗口。 但是,使用wait-on,只有在 Http://localhost:3000 启动好,才会打开Electron窗口。

"dev": "concurrently \"cross-env BROWSER=none npm run start\" \"wait-on http://localhost:3000 && electron .\"",

此外,React默认情况下会打开一个浏览器窗口,但对于 Electron 开发来说,这是不必要的。咱们可以通过传递环境变量BROWSER=none来禁用此行为。

7. 列出并选择可用脚本

列出package.json文件中可用的脚本很简单:只需转到项目的根目录并在终端中输入npm run。

但是有一种更方便的方法可以获得脚本列表,可以立即运行该列表:为此,全局安装 NTL (npm任务列表)模块:

npm i -g ntl

然后在项目文件夹中运行ntl命令,可以获得一个可用脚本列表,并可以选择其中一个运行。

npm快速开发技巧有哪些

8. 运行前后脚本

你可能熟悉prebuild和postbuild这样的脚本,它们允许你定义在构建脚本之前或之后运行的代码。但事实上,pre和post可以在任何脚本之前添加,包括自定义脚本。

这不仅使你的代码更干净,而且还允许你单独运行pre和post脚本。

9. 控制应用程序版本

与手动更改应用程序的版本相比,npm 提供了一些有用的快捷方式来完成这一点。 要增加版本,请在运行 npm version加上major,minor或patch`:

// 1.0.0
npm version patch
// 1.0.1
npm version minor
// 1.1.0
npm version major
// 2.0.0

根据更新应用程序的频率,可以通过在每次部署时增加版本号来节省时间,使用以下脚本:

{
 "predeploy": "npm version patch"
}

10. 从命令行编辑 package.json

package.json是一个常规的json文件,因此可以使用工具库json从命令行进行编辑。 这在修改package.json提供另外一种新的方式,允许w你q创建超出默认值的快捷方式。 全局安装:

npm install -g json

然后,可以使用它来使用-I进行就地编辑。 例如,要添加值为“bar”的新脚本“foo”,这样写:

json -I -f package.json -e 'this.scripts.foo="bar"'

11. 自动设置和打开你的github库

如果package.json文件中有“repository”,则可以通过输入 npm repo在默认浏览器中打开它。

如果你的项目已经连接到远程存储库,并且已经在命令行上安装了git,那您可以使用这个命令找到你的连接存储库

git config --get remote.origin.url

更好的是,如果你按照上面的提示并安装了json模块,可以使用下面的脚本自动将正确的存储库添加到 package.json

json -I -f package.json -e "this.repository=\"$(git config --get remote.origin.url)\""

12. 自定义npm init脚本

让我们更进一步,使用我们自己的npm init脚本,它接受GitHub存储库URL并自动推送我们的第一个提交。在本技巧中,我们将讨论如何创建自定义npm init脚本。在下一个(也是最后一个)技巧中,我们将合并git。

可以通过重定向到主目录中的.npm-init.js文件来编辑npm init脚本。(在Windows上,通常是 c/Users/<用户名>,在 Mac 上,它是/Users/<用户名>)。

让我们首先在我们的主目录中创建一个.nmm-init.js文件。为了确保npm init被指向正确的文件,可以运行:

npm config set init-module ~\.npm-init.js

在集成git之前,这里有一个简单的.npm-init.js文件,它模拟了默认npm init的问题

module.exports = {
 name: prompt('package name', basename || package.name),
 version: prompt('version', '0.0.0'),
 decription: prompt('description', ''), 
 main: prompt('entry point', 'index.js'),
 repository: prompt('git repository', ''),
 keyWords: prompt(function (s) { return s.split(/\s+/) }),
 author: prompt('author', 'Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)'),
 license: prompt('license', 'ISC')
}

每个问题都遵循nameInPackage模式:prompt('nameInPrompt','defaultValue')。要在缺省情况下设置值而不带问题,只需删除prompt方法。

如果要返回默认设置,只需删除.npm-init.js。

13. 使用自定义npm init脚本将你的第一个 Commit 提交到 GitHub

为了将git命令合并到.npm-init.js文件中,需要一种方法来控制命令行。为此,我们可以使用child_process 模块。在文件的顶部引入它,因为我们只需要execSync函数,所以可以使用析构赋值语法自己获取它:

const { execSync } = require('child_process');

我还创建了一个helper函数,它将函数的结果打印到控制台:

function run(func) {
 console.log(execSync(func).toString())
}

最后,我们将提示输入GitHub存储库URL,如果提供,我们将生README.md文件,并启动我们的第一次提交。

repository: prompt('github repository url', '', function (url) {
 if (url) {
  run('touch README.md');
  run('git init');
  run('git add README.md');
  run('git commit -m "first commit"');
  run(`git remote add origin ${url}`);
  run('git push -u origin master');
 }
 return url;
})

总的来说,.npm-init.js文件大概如下:

const { execSync } = require('child_process');

function run(func) {
 console.log(execSync(func).toString())
}

module.exports = {
 name: prompt('package name', basename || package.name),
 version: prompt('version', '0.0.0'),
 decription: prompt('description', ''),
 main: prompt('entry point', 'index.js'),
 keywords: prompt(function (s) { return s.split(/\s+/) }),
 author: prompt('author', 'Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)'),
 license: prompt('license', 'ISC'),
 repository: prompt('github repository url', '', function (url) {
  if (url) {
   run('touch README.md');
   run('git init');
   run('git add README.md');
   run('git commit -m "first commit"');
   run(`git remote add origin ${url}`);
   run('git push -u origin master');
  }
  return url;
 }),
}

package.json文件:

{
 "name": "Custom npm init",
 "version": "0.0.0",
 "decription": "A test project, to demonstrate a custom npm init script.",
 "main": "index.js",
 "keywords": [],
 "author": "Joe Bloggs <joe.bloggs@gmail.com> (joebloggs.com)",
 "license": "ISC",
 "repository": {
  "type": "git",
  "url": "git+https://github.com/JoeBloggs/custom.git"
 },
 "bugs": {
  "url": "https://github.com/JoeBloggs/custom/issues"
 },
 "homepage": "https://github.com/JoeBloggs/custom#readme"
}

你也可以通过合并GitHub API进一步实现这一点,这样就不需要创建一个新的存储库,这部分留给你们自己完成。

总的来说,希望这篇文章能够让你了解npm可以实现的目标,并展示了一些提高工作效率的方法 - 无论是你知道常见的快捷方式,还是通过充分利用脚本 package.json,或编写自定义版本的npm init。

以上是“npm快速开发技巧有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: npm快速开发技巧有哪些

本文链接: https://lsjlt.com/news/79286.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • npm快速开发技巧有哪些
    这篇文章主要介绍npm快速开发技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.学习基本快捷方式我们从最基本的开始,学习最常见的npm快捷方式从长远来将会节省很多时间。安装...
    99+
    2024-04-02
  • 快速提升开发CSS技能的小技巧有哪些
    这篇文章主要介绍快速提升开发CSS技能的小技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!flexbox 内容换行当我们使用 flexbox 布局的时候,默认情况下,在容器宽...
    99+
    2024-04-02
  • 有哪些快速建站技巧
    以下是一些快速建站技巧:1. 使用模板:使用现成的网站模板可以大大缩短建站时间。有许多免费和付费的模板可供选择。2. 使用网站构建器...
    99+
    2023-06-11
    建站技巧
  • 有哪些CSS快速提升技巧
    本篇内容主要讲解“有哪些CSS快速提升技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些CSS快速提升技巧”吧!1、使用CSS重置(reset)css重置...
    99+
    2024-04-02
  • Vue开发技巧有哪些
    Vue开发技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。路由参数解耦一般在组件内使用路由参数,大多数人会这样做:export&nbs...
    99+
    2024-04-02
  • JS开发技巧有哪些
    这篇文章主要为大家展示了“JS开发技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS开发技巧有哪些”这篇文章吧。常用 JS 函数1.时间格式化界面展示...
    99+
    2024-04-02
  • C#开发技巧有哪些
    这篇文章将为大家详细讲解有关C#开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C#开发技巧(一):关于变量的命名和属性static readonly与const的变量,作用是一样的,无论访问...
    99+
    2023-06-17
  • 有哪些Python开发技巧
    这篇文章主要介绍“有哪些Python开发技巧”,在日常操作中,相信很多人在有哪些Python开发技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python开发技巧”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • Python有哪些开发技巧
    这篇文章主要讲解了“Python有哪些开发技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些开发技巧”吧! 1. 如何在运行状态查看源代码查看函数的源代码,我们通...
    99+
    2023-06-16
  • JavaScript开发技巧有哪些
    本篇内容介绍了“JavaScript开发技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  使用很多javascript代码的Web...
    99+
    2023-06-04
  • WEBAPP开发技巧有哪些
    本篇内容主要讲解“WEBAPP开发技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEBAPP开发技巧有哪些”吧!要响应式开发web,也就是页面必须自适应屏幕大小,可以采用流体布局,如之...
    99+
    2023-06-08
  • NPM实用技巧有哪些
    今天小编给大家分享一下NPM实用技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1...
    99+
    2024-04-02
  • NPM使用技巧有哪些
    小编给大家分享一下NPM使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下记录一些NPM作为工具的一些使用技巧。npmrc.npmrc 做为npm的...
    99+
    2023-06-17
  • PHP应用开发中的NPM包管理技巧有哪些?
    随着JavaScript在Web开发中的广泛应用,Node.js的出现使得JavaScript也可以用于后端开发。而NPM(Node Package Manager)则成为了Node.js的重要组成部分,提供了丰富的第三方包和模块,方便开...
    99+
    2023-09-10
    npm bash spring
  • JS有哪些开发小技巧
    本篇内容主要讲解“JS有哪些开发小技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS有哪些开发小技巧”吧!1. typeof ...
    99+
    2024-04-02
  • linux中开发技巧有哪些
    这篇文章将为大家详细讲解有关linux中开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.make: Nothing to be done for `all' 解决方法 1.这句提示...
    99+
    2023-06-13
  • Python开发的技巧有哪些
    这篇文章主要讲解了“Python开发的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python开发的技巧有哪些”吧! 列表推导式你有一个list:bag = [1, 2, 3, ...
    99+
    2023-06-02
  • jQuery中EasyUI开发技巧有哪些
    这篇文章主要为大家展示了“jQuery中EasyUI开发技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery中EasyUI开发技巧有哪些”这篇文...
    99+
    2024-04-02
  • 实用JavaScript 开发技巧有哪些
    这篇文章将为大家详细讲解有关实用JavaScript 开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 初始化数组如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:c...
    99+
    2023-06-22
  • 加快Python运行时速度的技巧有哪些
    本篇内容介绍了“加快Python运行时速度的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0.优化原理在深入探讨代码优化的细节之前...
    99+
    2023-06-16
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作