奇妙的「browserify」,其作品像一個魅力。這是使用Arunda's NPM Atmosphere package,或using Npm.require with package.js替代,即可以說具有一定的優勢:
- 我的代碼可以使用普通的舊「規定」的,而不是Npm.require或Meteor.require。顯然這並不是什麼大問題,但如果我想在Meteor之外使用這個代碼,很高興感覺它不依賴於Meteor。
- 我不必擔心Meteor是否會再次改變它對Npm整合的看法。
- 它允許我使用npm鏈接使用我自己的npm模塊的本地開發版本。
下面是它如何工作的:
- 我在一個隱藏文件夾.npm
- 我用browserify創建將被流星
加載的bundle.js創建NPM依賴一個單獨的項目
- 我用咕嚕手錶,以確保每次我安裝一個新的NPM包,bundle.js更新
這裏是我的目錄結構:
my_meteor_project/
lib/
bundle.js
.npm/
node_modules
README.md
Gruntfile.js
entrypoint.js
package.json
這裏的entrypoint.js的例子(不幸的是我必須使用全局變量,這樣斷言,URL和_流星的代碼中)
assert = require('assert');
url = require("url");
_ = require('underscore');
這裏的gruntfile:
module.exports = function(grunt) {
grunt.initConfig({
watch: {
build: {
files: ['./entrypoint.js', './package.json'],
tasks: ['browserify2'],
options: {
}
}
},
browserify2: {
compile: {
entry: './entrypoint.js',
compile: '../lib/bundle.js'
}
},
});
grunt.loadNpmTasks('grunt-browserify2');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('build', ['browserify2']);
};
然後我使用grunt手錶來觀察entry.js或新NPM安裝的更改
$ cd .npm
$ grunt watch:build &
[2] 44617
$ Running "watch:build" (watch) task
Waiting...
然後,如果我安裝NPM模塊,或修改entrypoint.js,bundle.js更新:
$ npm install url -save
npm http GET https://registry.npmjs.org/punycode
npm http GET https://registry.npmjs.org/querystring
npm http 304 https://registry.npmjs.org/punycode
npm http 304 https://registry.npmjs.org/querystring
[email protected] node_modules/url
├── [email protected]
└── [email protected]
$ OK
>> File "package.json" changed.
Running "browserify2:compile" (browserify2) task
File written to: ../lib/bundle.js
Done, without errors.
Completed in 1.256s at Thu Jul 11 2013 11:36:22 GMT-0600 (MDT) - Waiting...
這可能是您的最佳選擇:http://www.youtube.com/watch?v=kA-QB9rQCq8&feature=youtu.be其已經在流星的devel的分支,如果你使用的隕石,你可以使用它與ITLL達流星 – Akshat 2013-03-23 05:29:24
順便說一句發動機分公司與分公司devel軟件包的下一個版本,在過去2周 – Akshat 2013-03-23 07:51:36
@Akshat是已經合併爲一段有這個工作的devel的穩定版本? – 2013-03-24 02:06:48