Dan*_*ley 87 javascript dependencies bundler node.js npm
我喜欢Bundler,它非常善于依赖管理.我爱npm,安装节点包很容易!我有一个nodejs应用程序,并希望能够指定我的应用程序依赖项,并在我部署我的应用程序的任何地方轻松安装/更新它们.这不是我发布的图书馆,它是一个完整的网络应用程序.
我知道这个npm bundle
命令,但这似乎只是覆盖了安装包的目录.
我习惯以这种方式使用bundler:
# Gemfile
gem "rails", "3.0.3"
Run Code Online (Sandbox Code Playgroud)
仅在主机上存在rails v3.0.3和任何其他必需的gem时才会存在
> bundle install
Run Code Online (Sandbox Code Playgroud)
如何用npm实现类似的功能?
isa*_*acs 146
从npm 1.0开始(现在,如果您按照README文件中的步骤,默认情况下会得到),"bundle"不再是一个隔离的东西 - 它只是"它是如何工作的".
所以:
package.json
文件放在项目的根目录中在该文件中列出您的deps
{ "name" : "my-project"
, "version" : "1.0.0"
, "dependencies" : { "express" : "1.0.0" } }
Run Code Online (Sandbox Code Playgroud)npm install
由于你在没有args的情况下调用它,而不是在全局模式下,它只是在本地安装你所有的deps.
require("express")
而且要快乐.Dan*_*ley 10
很难弄清楚这一点,但NPM使这成为可能.
deps/
)package.json
在上述目录中的文件,列出了相关index.js
上述目录中的文件,需要你的依赖想象一下快递是你唯一的依赖
注意:每次修改依赖项时都会增加版本号
{
"name": "myapp_dependencies",
"version": "0.0.1",
"engines": {
"node": "0.4.1"
},
"dependencies":{
"express": "2.0.0beta2"
}
}
Run Code Online (Sandbox Code Playgroud)
export.modules = {
express: require('express')
//add more
}
Run Code Online (Sandbox Code Playgroud)
现在,您应该能够使用npm安装依赖项.您甚至可以完成部署过程
cd deps
npm install
Run Code Online (Sandbox Code Playgroud)
然后在您的应用代码中,您可以访问您的特定版本的快递,如下所示:
var express = require('myapp_dependencies').express;
Run Code Online (Sandbox Code Playgroud)
你应该阅读Isaacs(作者npm)博客中的这两篇文章.我认为他们真的很好,我相信告诉你如何实现你的目标:
我相信链接#1(第11点)解释了这个:
11:将所有依赖项捆绑到包本身中
当您使用npm bundle命令时,npm会将所有依赖项放入包中的node_modules文件夹中.但它并不止于此.
如果您想依赖注册表中没有的内容,您可以这样做.这样做:
npm bundle install http://github.com/whoever/whatever/tarball/master 这会将该tarball的内容安装到bundle中,然后你可以将它列为依赖项,并且它不会尝试安装它您的包已安装.
如果你有自己的东西,并且不想更改名称,这也很方便.
实际上,您可以在捆绑包上运行几乎任何npm命令.要查看内部的内容,您可以执行npm bundle ls.要删除某些东西,请执行npm bundle rm thing.当然,您可以安装多个版本并激活您想要的版本.
归档时间: |
|
查看次数: |
86774 次 |
最近记录: |