npm配置文件脚本定义.md

目录

  • 一、npm脚本原理
  • 二、package.json
  • 三、脚本区及钩子
  • 四、相关链接

一、npm脚本原理

npm脚本的原理非常简单。每当执行npm run,就会自动新建一个Shell,在这个 Shell里面执行指定的脚本命令。因此,只要是Shell(一般是 Bash)可以运行的命令,就可以写在 npm脚本里面。

比较特别的是,npm run新建的这个 Shell,会将当前目录的node_modules/.bin子目录加入PATH变量,执行结束后,再将PATH变量恢复原样。

二、package.json

package.json是npm的配置文件,其中定义了项目基本信息、项目依赖库以及node运行脚本。

{
  "name": "vux-demo",
  "version": "1.0.0",
  "description": "A Vue.js project",
  "author": "vipinchan <[email protected]>",
  "private": true,
  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  },
  "dependencies": {
    "axios": "^0.16.2",
    "vue": "^2.5.2",
    "vue-router": "^3.0.1",
    "vux": "^2.2.0",
    "mockjs": "1.0.1-beta3"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.2",
    "babel-core": "^6.22.1",
  },
  "engines": {
    "node": ">= 4.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}
  • dependencies字段指定了项目运行所依赖的模块;
  • devDependencies指定项目开发所需要的模块。
  • scripts指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

    安装新的模块:

npm install express --save  // 将该模块写入dependencies属性
npm install express --save-dev  // 将该模块写入devDependencies属性

三、脚本区及钩子

  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "prebuild": "rm -f dist/prod/*.js && rm -f dist/test/*.js",
    "start": "npm run dev",
    "build": "npm run build:test && npm run build:prod",
    "build:prod": "webpack --env.NODE_ENV=production",
    "build:test": "webpack --env.NODE_ENV=test",
  },

1. 执行顺序

npm run build:test & npm run build:prod // 并行执行
npm run build:test && npm run build:prod // 串行执行

2. 钩子

npm脚本有pre和post两个钩子,会在命令的前后执行,如:

    "prebuild": "rm -f dist/prod/*.js && rm -f dist/test/*.js",
    "postbuild": "echo \"build success.\"",
    "build": "npm run build:test && npm run build:prod",

当前执行npm run build时,实际是执行情况是prebuild->build->postbuild

四、相关链接

http://javascript.ruanyifeng.com/nodejs/packagejson.html#toc1

https://docs.npmjs.com/misc/scripts

原文地址:https://www.cnblogs.com/vipinchan/p/9271339.html

时间: 2024-10-02 11:37:33

npm配置文件脚本定义.md的相关文章

Spring在bean配置文件中定义电子邮件模板

在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免.应该考虑在Spring bean 配置文件中定义电子邮件模板. 1.Spring的邮件发件人 Java类使用 Spring的MailSender接口发送电子邮件,并使用 String.Format 传递变量bean配置文件替换电子邮件中的 '%s'. File : MailMail.java package com.yiibai.common; import org.springframe

phpmyadmin登录后显示“使用配置文件中定义的控制用户连接失败。”错误提示

在安装完XAMPP后,设置mysql中root账户密码为123456,并修改phpmyadmin配置中root的密码为123456之后,但是phpmyadmin登录后显示"使用配置文件中定义的控制用户连接失败."错误提示. 这是因为还有一些配置信息没有更改导致的,具体设置步骤如下: 1.找到phpmyadmin文件夹下面的config.inc.php文件并打开,找到这两行代码: $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Serv

npm(script)脚本

什么是npm脚本? npm允许在package.json文件里面,使用scripts字段定义脚本命令. 简写指令 npm start -> npm run start npm stop -> npm run stop npm text -> npm run test npm restart -> npm run stop & npm run start { scripts:{ "build":'node build.js' } } 上面代码是packag

Ubuntu自动生成更换壁纸配置文件脚本的困惑

花了一整个下午研究了下Ubuntu怎么自动切换壁纸.其实,感觉还是很简单的,主要就是修改目录/usr/share/backgrouds/contest/trusty.xml的配置文件. 它的格式是这样的: 1 <background> 2 <starttime> 3 <year>2009</year> 4 <month>08</month> 5 <day>04</day> 6 <hour>00<

Shell脚本定义变量和环境变量的引用

一.定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: ?首个字符必须为字母(a-z,A-Z). ?中间不能有空格,可以使用下划线(_). ?不能使用标点符号. ?不能使用bash里的关键字(可用help命令查看保留关键字). 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况: for s

在controller中无法通过注解@Value获取到配置文件中定义的值解决办法

使用springMVC的朋友,有时候可能会遇到以下问题: 想在controller中使用@Value指定变量,但是无法得到对应的值.而在server层获取,是正常的.解决方案:1:在srping-mvc.xml 加上以下配置.相当于在springmvc配置文件中也读取properties文件,这样controller就访问自己容器中的数据<context:property-placeholder location="classpath:config.properties" ign

centos 7 修改sshd | 禁止 root登录及sshd端口脚本定义

1.新建用户wwweee000 [[email protected] ~]# useradd wwweee000 [[email protected] ~]# passwd wwweee000 Changing password for user wwweee000. New password: BAD PASSWORD: The password is a palindrome Retype new password: passwd: all authentication tokens upd

自动创建脚本定义内容,并实现版本控制

#!/bin/bashexport LANG=zh_CN.UTF-8 author: zhizhimao <zhizhimao.vip.qq.com> filename: vish version: v.0.0 date:2020-01-30 13:14:00 option: -d 描述 -v 指定版本 describe: 创建脚本添加作者.文件名.版本.日期.描述内容,检查语法是否正确,并实现版本控制自动添加版本号.打开非自定义脚本文件时备份后打开; Version=v.0.0Date=$(

npmrc npm配置文件

一.全局 这个文件在全局会放在/users/${yourname}/.npmrc 里面最重要的是registry,npm的源 二.项目 项目里面如果和package.json同级存放了这个.npmrc 那么就可以实现,仅仅对于这个项目,换npm的源了 原文地址:https://www.cnblogs.com/amiezhang/p/10159468.html