从自定义 npm 包调用脚本

Call script from custom npm package

我想自己写一个npm包来分析一个vue项目的结构(vueanalyser)。所以我用 npm init --scope=@my-username 创建了一个新包并将 "main" 属性 设置为 index.js.

// package.json of the custom package
{
  "name": "@my-username/vueanalyser",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "repository": {
    "type": "git",
    "url": "..."
   },
  "bugs": {
    "url": "..."
   },
  "homepage": "...",
  "description": ""
}

我发布了包并将其添加到我的 vue 项目中 (.node_modules/@my-username/vueanalyser)。现在我想在vue项目的package.json的脚本属性中添加"analyse": "vueanalyser start"这样的命令。如果我这样做,我显然会收到一个错误,即命令未知。

所以我意识到,我可以用 "analyse": "node node_modules/@my-username/vueanalyser/index.js 调用 index.js,但我已经看到可以用更短的方式调用脚本的包,例如"styleguide:build": "vue-styleguidist build"。我必须更改什么才能以这种方式调用我的脚本 ("analyse": "vueanalyser start")?

the npm bin property

这指定要复制到 node_modules/.bin 中的可执行文件。

  1. 将可执行文件头添加到您的 index.js
    将此添加到第一行:#!/usr/bin/env bash
  2. 使文件可执行
    chmod +x index.js
  3. 编辑package.json
    添加 bin 属性:
{
    ...
    "bin": { "vueanalyser": "index.js" }
  1. 重新发布包
  2. 安装包
  3. 查找 node_modules/.bin/vueanalyser 是指向 ../<package_name>/index.js 的符号链接!