运行 通过 JSPM 安装后可执行

Running executable after installing via JSPM

我正在尝试了解如何在使用 JSPM 安装模块后 运行 执行文件。例如,如果我 运行 jspm install gulp,那么我希望能够 运行 以下命令:

./jspm_packages/npm/gulp\@3.8.11/bin/gulp.js

实际上,如果 jspm 处理这个问题会更好,以便在以下位置有一个包含所有检索到的可执行文件(例如 gulp)的隐藏 bin 目录:

./jspm_packages/.bin

这样我就可以在我的 PATH 环境变量中添加一个,允许这些可执行文件 运行.

当前,当我尝试 运行 安装了 jspm gulp 时,我收到以下错误消息:

[jspm-test]$ ./jspm_packages/npm/gulp\@3.8.11/bin/gulp.js 
./jspm_packages/npm/gulp@3.8.11/bin/gulp.js: line 1: /bin: Is a directory
./jspm_packages/npm/gulp@3.8.11/bin/gulp.js: line 2: syntax error near unexpected token `('
./jspm_packages/npm/gulp@3.8.11/bin/gulp.js: line 2: `(function(process) {'

还有其他方法可以解决这个问题吗?

根据我的经验,这对 JSPM 来说很奇怪,因为 JSPM 更适合您的应用程序的实际在浏览器中生产的部门。我在我的项目中所做的是使用 NPM 安装我需要 运行 与 scripts/in dev(gulp、karma、express 等)的模块,然后你可以 运行 使用 node :

node ./node_modules/karma/bin/karma.js <args>

这有点奇怪,但如果您将其视为 NPM 处理本地,"executable" 生产中未使用的 dep 和 JSPM 处理您的应用程序的 dep,这些 dep 将被捆绑和运送有道理。

我同意@SleepyProgrammer 的回复。

JSPM 是专门针对 front-end 依赖项的包管理器,很像 bower。

使用项目的 front-end 依赖项安装 gulp 很奇怪。
您宁愿使用 npm 安装 gulp、karma、express 等作为开发依赖项,以在本地开发服务器上捆绑和处理事物,然后将结果作为 js、css、html 文件...

一个简单的$(npm bin)/gulp -v使

也就是说,我用 jspm 安装了 enzyme 以便我的测试能够导入它。


如果你想在你的节点项目中使用 jspm,你总是可以使用这个命令:

jspm run script

查看文档:http://jspm.io/docs/nodejs-usage.html