【问题标题】:Call script from custom npm package从自定义 npm 包调用脚本
【发布时间】:2021-07-04 03:51:21
【问题描述】:

我想自己写一个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"),我需要进行哪些更改?

【问题讨论】:

    标签: node.js npm package.json


    【解决方案1】:

    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 的符号链接!

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 2018-02-28
      • 2022-01-21
      • 1970-01-01
      • 2023-04-07
      • 2023-03-24
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多