在部署应用程序的静态文件时,我正在使用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
二进制文件的方法。 npm
在node_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
上吗?是否有类似于virtualenv的activate
脚本的脚本?我应该在项目中硬编码路径吗?
我确定npm的作者已经考虑过这个用例。否则像Babel这样的项目会生活在npm的预期用途的灰色区域。
答案 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
来执行脚本。