Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从另一个包中执行NPM包_Javascript_Node.js_Npm_Package.json - Fatal编程技术网

Javascript 从另一个包中执行NPM包

Javascript 从另一个包中执行NPM包,javascript,node.js,npm,package.json,Javascript,Node.js,Npm,Package.json,我正在制作一个npm软件包,几乎可以包装故事书。我的软件包包含配置、样式选项等。我已经使自己的软件包可执行,当使用npm link时,所有这些都可以正常运行 我需要的是让我自己的可执行文件刚刚启动storybook,这是一个依赖项。在我的包的package.json中: "scripts": { "storybook": "start-storybook -p 6006", }, "bin": { "

我正在制作一个npm软件包,几乎可以包装故事书。我的软件包包含配置、样式选项等。我已经使自己的软件包可执行,当使用
npm link
时,所有这些都可以正常运行

我需要的是让我自己的可执行文件刚刚启动storybook,这是一个依赖项。在我的包的package.json中:

"scripts": {
  "storybook": "start-storybook -p 6006",
},
"bin": {
  "ecs-storybook": "./cli.js"
},
运行
ecs故事书之后,cli.js将按照我的预期执行。我想做的就是运行
故事书
脚本。我正在使用npm本身来做这件事:

#!/usr/bin/env node
const npm = require('npm');

console.log('Starting ECS storybook...');

npm.load(() => {
  npm.run('storybook');
});
这可能显然不起作用。当它在package.json中查找时,我得到了错误
error:missing script:storybook
,而不是我的包中的内容

(对不起,这很难解释)

有没有一种方法可以从我的包中为不同的包执行命令?我知道运行shell脚本有多种方法,但我遇到的问题是,运行命令的位置可能不正确

我希望能够在安装了此软件包的项目中运行
ecs storybook
命令,而不需要将光盘刻录到
node\u模块中
或任何类似的奇怪内容

有什么想法吗