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/bower
npm in fabfile.py
from fabric.api import lcd, local
def npm(*args):
cmd = 'npm '
with lcd("myapp/static"):
local(cmd + ' '.join(args))
fab npm:install
fab npm:update
pip install invoke
bower install
bower update
static/bower.json {
...
"dependencies": {
"jquery": "*",
...
"ignore": [
"**/.*",
"node_modules",
"packages"
],
cd myapp/static
node_modules/.bin/bower install
node_modules/.bin/bower update
Bower in fabfile.py
from fabric.api import lcd, local
def bower(*args):
cmd = 'node_modules/.bin/bower '
with lcd("myapp/static"):
local(cmd + ' '.join(args))
fab bower:install
fab bower:update
fab npm:install bower:install
Default: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.js
stylus cssmin %.min.css
stylus 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
很少