Keith Yang


HTML<div
class="CSS"
style="color: white">
<p> Hello HTML
<div ng-app="NoNG"
class="col-md-6">
<p ng-controller="EverCtrl
as everCtrl">
{{everCtrl.hello}}
from all import profit, fun
「可是 js...
我過慣好日子了。」pip install -r requirement.txt

0.?.?
static/package.json{
...
"devDependencies": {
"bower": "*",
...
static/node_modules/.bin/bowernpm in fabfile.pyfrom fabric.api import lcd, local
def npm(*args):
cmd = 'npm '
with lcd("myapp/static"):
local(cmd + ' '.join(args))
fab npm:installfab npm:update
pip install invoke
bower installbower update
static/bower.json {...
"dependencies": {
"jquery": "*",
...
"ignore": [
"**/.*",
"node_modules",
"packages"
],
cd myapp/staticnode_modules/.bin/bower installnode_modules/.bin/bower update
Bower in fabfile.pyfrom fabric.api import lcd, local
def bower(*args):
cmd = 'node_modules/.bin/bower '
with lcd("myapp/static"):
local(cmd + ' '.join(args))
fab bower:installfab bower:update
fab npm:install bower:installDefault:static/components/{package}
# 可以在很不明顯的 .bowerrc 裡更改
static/components/jquery/
├── MIT-LICENSE.txt
├── bower.json
├── dist
│ ├── jquery.js
│ ├── jquery.min.js
│ └── jquery.min.map
...
diff- "angular": "~1.2.12"
+ "angular": "~1.2.16"

...
<script src="static/components/
jquery/dist/jquery.min.js">
</script>
...
*.css cssmin %.min.css*.js jsmin %.min.jsstylus cssmin %.min.cssstylus autoprefixer cssmin
%.cross-browser.min.css
%for url in webassets(request, "static/components/jquery/dist/jquery.js", ..., output='build/js/jqeury.%(version)s.js', filters='rjsmin')
<script src="${url}"></script>
%endfor

=>jquery.a1b2c3d4.js=> 避免瀏覽器暫存
CSS、JS 檔
jqeury.js, angular.js, livereload.js, ...=>vendor.a1b2c3d4.js# Django-Compressor 也行
II
diff 很少