【发布时间】:2018-11-05 16:53:54
【问题描述】:
我目前正在开发一个 NPM 包,它启动一个用于托管图像的快速服务器。这存在于 Laravel 项目的目录中。
目前这还在开发中,我想把它开发成一个可发布的模块,所以我在我的 Laravel 项目中为这个包添加了一个 .gitignore。
在我的 NPM 包中,我运行 npm link,在我的 Laravel 项目中,我运行 npm link imageserver,imageserver 是我的包的名称。这确保我可以开发我的包,而不必经常使用 NPM 发布和引入新的更改。
我现在可以在我的 JavaScript 中使用 require() 语句来请求包,但我只是想通过 npm 脚本运行这个包的快速服务器。
在 imageserver 包中,我设置了一个 package.json,其中包含:
"scripts": {
"start": "nodemon app.js"
}
如何在我已链接的包上调用npm run start 脚本?
在我的 Laravel 项目中,我只想像这样启动我的链接服务器包:
"scripts": {
"start": "imageserver"
}
但在这种情况下,我得到:
图像服务器:未找到
通常,如果 NPM 脚本安装在您的 node_modules 目录中,您可以正常运行包。这不是链接包的情况吗?
编辑
我已将bin 属性添加到我的package.json 文件以使其可执行并将其添加到我的全局路径中。至少这样我可以从我的 NPM 脚本中调用imageserver 并且它可以工作。现在我得到了权限错误:
//: Permission denied
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 2: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: global.__base: not found
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 4: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: //: Permission denied
/home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: 5: /home/workstation/.nvm/versions/node/v10.1.0/bin/imageserver: Syntax error: "(" unexpected
【问题讨论】:
标签: node.js npm node-modules npm-scripts