用于运行作为依赖项安装的命令的预期方法

时间:2016-07-27 12:27:02

标签: npm virtualenv npm-install

在部署应用程序的静态文件时,我正在使用Django Pipline处理一个Django项目来处理CSS和JavaScript文件。我想在此过程中使用Babel将JSX源代码编译为JavaScript。为此,我需要编写一个调用babel的管道插件并将其传递给JSX文件。

要安装Babel及其依赖项,我设置了一个最小package.json

{
    "name": "my-project",
    "version": "1.0.0",
    "description": "",
    "dependencies": [
        "babel-cli@6.11.4",
        "babel-preset-react@6.11.1"
    ]
}

当我运行npm install时,它会将所有必要的依赖项安装到node_modules

这一切都很好,但有一部分让我望而却步。我还没有找到一种直接运行babel二进制文件的方法。 npmnode_modules/.bin下安装了这些二进制文件,npm bin也返回了这些二进制文件:

$ find node_modules -name babel
node_modules/.bin/babel
node_modules/babel-cli/lib/babel

$ npm bin
[...]/node_modules/.bin

那时的预期方式是什么?运行babel二进制文件?

我应该将该目录放在$PATH上吗?是否有类似于virtualenvactivate脚本的脚本?我应该在项目中硬编码路径吗?

我确定npm的作者已经考虑过这个用例。否则像Babel这样的项目会生活在npm的预期用途的灰色区域。

1 个答案:

答案 0 :(得分:1)

如果您使用npm脚本,node_modules/.bin中的二进制文件将添加到您的PATH。所以,你可以像这样创建一个"build"脚本:

{
    "name": "my-project",
    "version": "1.0.0",
    "description": "",
    "dependencies": [
        "babel-cli@6.11.4",
        "babel-preset-react@6.11.1"
    ],
    "scripts": {
        "build": "babel script.js"
    }
}

然后执行npm run build来执行脚本。