Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yoho-activity-node
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
毕凯
9 years ago
Commit
2ce77b862da2358d09aaa83d911e385709700318
1 parent
a5ccab3c
重新初始化静态资源
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
192 additions
and
191 deletions
package.json
public/starClassroom/gulpfile.js
public/starClassroom/webpack.config.js
package.json
View file @
2ce77b8
...
...
@@ -14,14 +14,12 @@
"cookie-parser"
:
"~1.3.5"
,
"debug"
:
"~2.2.0"
,
"express"
:
"~4.13.1"
,
"gulp-util"
:
"^3.0.7"
,
"hbs"
:
"^3.1.1"
,
"express-session"
:
"^1.13.0"
,
"lodash"
:
"^4.6.1"
,
"morgan"
:
"~1.6.1"
,
"request-promise"
:
"^2.0.1"
,
"serve-favicon"
:
"^2.3.0"
,
"shelljs"
:
"^0.6.0"
"serve-favicon"
:
"^2.3.0"
},
"pre-commit"
:
[
"lint"
...
...
@@ -39,6 +37,7 @@
"gulp-cssnano"
:
"^2.1.1"
,
"gulp-postcss"
:
"^6.1.0"
,
"gulp-sourcemaps"
:
"^1.6.0"
,
"gulp-util"
:
"^3.0.7"
,
"postcss-assets"
:
"^4.0.1"
,
"postcss-calc"
:
"^5.2.0"
,
"postcss-center"
:
"^1.0.0"
,
...
...
@@ -52,10 +51,12 @@
"postcss-use"
:
"^2.0.2"
,
"precommit-hook"
:
"^3.0.0"
,
"precss"
:
"^1.4.0"
,
"shelljs"
:
"^0.6.0"
,
"stylelint"
:
"^5.2.1"
,
"stylelint-config-yoho"
:
"^1.1.0"
,
"vinyl-named"
:
"^1.1.0"
,
"webpack"
:
"^1.12.14"
,
"webpack-dev-server"
:
"^1.14.1"
"webpack-dev-server"
:
"^1.14.1"
,
"webpack-stream"
:
"^3.1.0"
}
}
...
...
public/starClassroom/gulpfile.js
View file @
2ce77b8
/**
* gulp
* author: xuqi(qi.xu@yoho.cn)
* date: 2015/9/30
*/
var
gulp
=
require
(
'gulp'
);
var
webpack
=
require
(
'webpack-stream'
);
var
postcss
=
require
(
'gulp-postcss'
);
var
sourcemaps
=
require
(
'gulp-sourcemaps'
);
var
cssnano
=
require
(
'gulp-cssnano'
);
var
named
=
require
(
'vinyl-named'
);
var
cp
=
require
(
'child_process'
);
var
fs
=
require
(
'fs'
);
var
config
=
JSON
.
parse
(
fs
.
readFileSync
(
'./package.json'
).
toString
());
var
root
=
`
dist
/
$
{
config
.
name
}
/`;
var
distDir
=
{
js
:
root
+
config
.
version
,
css
:
root
+
config
.
version
,
img
:
root
+
'assets/img'
,
font
:
root
+
'assets/font'
};
gulp
.
task
(
'default'
,
[
'postcss-dev'
,
'postcss-watch'
,
'js'
]);
//根据环境变量生成postcss插件配置
function
postcssEnvPlugin
(
env
)
{
var
sprites
=
{
spritesmith
:
{
padding
:
2
},
groupBy
:
function
(
file
)
{
// 根据目录分组,防止合并后的图片太大
var
group
=
file
.
url
.
split
(
'/'
)[
1
];
return
group
?
Promise
.
resolve
(
group
)
:
Promise
.
reject
();
},
filterBy
:
function
(
file
)
{
//使用resolve转化后静态资源生成../img或者../assets/img/的路径
if
(
/
\/
img/
.
test
(
file
.
url
)
||
/data:image/
.
test
(
file
.
url
))
{
return
Promise
.
reject
();
}
return
Promise
.
resolve
();
}
},
assets
,
plugins
;
if
(
env
===
'DEV'
)
{
assets
=
{
loadPaths
:
[
'font/'
,
'img/'
],
relativeTo
:
'css/'
};
Object
.
assign
(
sprites
,
{
basePath
:
'./img'
,
stylesheetPath
:
'./css'
,
spritePath
:
'./img'
});
}
else
if
(
env
===
'PRO'
)
{
assets
=
{
loadPaths
:
[
distDir
.
img
,
distDir
.
font
],
relativeTo
:
distDir
.
css
};
Object
.
assign
(
sprites
,
{
basePath
:
distDir
.
img
,
stylesheetPath
:
distDir
.
css
,
spritePath
:
distDir
.
img
});
}
plugins
=
[
require
(
'autoprefixer'
)({
browsers
:
[
'not ie < 8'
]
}),
require
(
'precss'
),
require
(
'postcss-assets'
)(
assets
),
require
(
'postcss-sprites'
).
default
(
sprites
),
require
(
'postcss-calc'
),
require
(
'postcss-opacity'
),
//可选
require
(
'postcss-use'
)({
modules
:
[
'postcss-clearfix'
,
'postcss-crip'
,
'postcss-short'
,
'postcss-center'
,
'postcss-position'
]
})
];
//正式环境为assets和img加no-cache
if
(
env
===
'PRO'
)
{
plugins
.
push
(
require
(
'postcss-cachebuster'
)({
imagesPath
:
'/'
+
distDir
.
img
,
cssPath
:
'/'
+
distDir
.
css
}))
}
return
plugins
;
}
//Postcss开发环境
gulp
.
task
(
'postcss-dev'
,
function
()
{
return
gulp
.
src
(
'sass/index.css'
)
.
pipe
(
sourcemaps
.
init
())
.
pipe
(
postcss
(
postcssEnvPlugin
(
'DEV'
)))
.
pipe
(
sourcemaps
.
write
(
'.'
))
.
pipe
(
gulp
.
dest
(
'css/'
))
});
gulp
.
task
(
'postcss-watch'
,
function
()
{
gulp
.
watch
(
'sass/**/*.css'
,
[
'postcss-dev'
]);
});
//Postcss正式环境生成
gulp
.
task
(
'postcss-pro'
,
[
'assets'
],
function
()
{
return
gulp
.
src
(
'sass/index.css'
)
.
pipe
(
postcss
(
postcssEnvPlugin
(
'PRO'
)))
.
pipe
(
cssnano
())
.
pipe
(
gulp
.
dest
(
distDir
.
css
))
});
gulp
.
task
(
'js'
,
function
()
{
return
gulp
.
src
(
'./index.js'
)
.
pipe
(
named
())
.
pipe
(
webpack
(
require
(
'./webpack.config.js'
)))
.
pipe
(
gulp
.
dest
(
distDir
.
js
))
});
//font+img->dist/assets
gulp
.
task
(
'assets'
,
[
'img'
,
'font'
]);
gulp
.
task
(
'img'
,
function
()
{
return
gulp
.
src
(
'img/**/*'
)
.
pipe
(
gulp
.
dest
(
distDir
.
img
));
});
gulp
.
task
(
'font'
,
function
()
{
return
gulp
.
src
(
'font/*'
)
.
pipe
(
gulp
.
dest
(
distDir
.
font
))
});
//生成发布目录,可用于上传测试机
gulp
.
task
(
'ge'
,
[
'assets'
,
'postcss-pro'
,
'js'
]);
//server
gulp
.
task
(
'server'
,
()
=>
{
cp
.
exec
(
'npm run start'
,
(
err
,
stdout
,
stderr
)
=>
{
if
(
err
)
{
console
.
log
(
`
exec
error
:
$
{
err
}
`
);
}
});
});
\ No newline at end of file
/**
* gulp
* author: xuqi(qi.xu@yoho.cn)
* date: 2015/9/30
*/
var
gulp
=
require
(
'gulp'
);
var
webpack
=
require
(
'webpack-stream'
);
var
postcss
=
require
(
'gulp-postcss'
);
var
sourcemaps
=
require
(
'gulp-sourcemaps'
);
var
cssnano
=
require
(
'gulp-cssnano'
);
var
named
=
require
(
'vinyl-named'
);
var
cp
=
require
(
'child_process'
);
var
fs
=
require
(
'fs'
);
var
config
=
JSON
.
parse
(
fs
.
readFileSync
(
'./package.json'
).
toString
());
var
root
=
`
dist
/
$
{
config
.
name
}
/`
;
var
distDir
=
{
js
:
root
+
config
.
version
,
css
:
root
+
config
.
version
,
img
:
root
+
'assets/img'
,
font
:
root
+
'assets/font'
};
gulp
.
task
(
'default'
,
[
'postcss-dev'
,
'postcss-watch'
,
'js'
]);
//根据环境变量生成postcss插件配置
function
postcssEnvPlugin
(
env
)
{
var
sprites
=
{
spritesmith
:
{
padding
:
2
},
groupBy
:
function
(
file
)
{
// 根据目录分组,防止合并后的图片太大
var
group
=
file
.
url
.
split
(
'/'
)[
1
];
return
group
?
Promise
.
resolve
(
group
)
:
Promise
.
reject
();
},
filterBy
:
function
(
file
)
{
//使用resolve转化后静态资源生成../img或者../assets/img/的路径
if
(
/
\/
img/
.
test
(
file
.
url
)
||
/data:image/
.
test
(
file
.
url
))
{
return
Promise
.
reject
();
}
return
Promise
.
resolve
();
}
},
assets
,
plugins
;
if
(
env
===
'DEV'
)
{
assets
=
{
loadPaths
:
[
'font/'
,
'img/'
],
relativeTo
:
'css/'
};
Object
.
assign
(
sprites
,
{
basePath
:
'./img'
,
stylesheetPath
:
'./css'
,
spritePath
:
'./img'
});
}
else
if
(
env
===
'PRO'
)
{
assets
=
{
loadPaths
:
[
distDir
.
img
,
distDir
.
font
],
relativeTo
:
distDir
.
css
};
Object
.
assign
(
sprites
,
{
basePath
:
distDir
.
img
,
stylesheetPath
:
distDir
.
css
,
spritePath
:
distDir
.
img
});
}
plugins
=
[
require
(
'autoprefixer'
)({
browsers
:
[
'not ie < 8'
]
}),
require
(
'precss'
),
require
(
'postcss-assets'
)(
assets
),
require
(
'postcss-sprites'
).
default
(
sprites
),
require
(
'postcss-calc'
),
require
(
'postcss-opacity'
),
//可选
require
(
'postcss-use'
)({
modules
:
[
'postcss-clearfix'
,
'postcss-crip'
,
'postcss-short'
,
'postcss-center'
,
'postcss-position'
]
})
];
//正式环境为assets和img加no-cache
if
(
env
===
'PRO'
)
{
plugins
.
push
(
require
(
'postcss-cachebuster'
)({
imagesPath
:
'/'
+
distDir
.
img
,
cssPath
:
'/'
+
distDir
.
css
}))
}
return
plugins
;
}
//Postcss开发环境
gulp
.
task
(
'postcss-dev'
,
function
()
{
return
gulp
.
src
(
'sass/index.css'
)
.
pipe
(
sourcemaps
.
init
())
.
pipe
(
postcss
(
postcssEnvPlugin
(
'DEV'
)))
.
pipe
(
sourcemaps
.
write
(
'.'
))
.
pipe
(
gulp
.
dest
(
'css/'
))
});
gulp
.
task
(
'postcss-watch'
,
function
()
{
gulp
.
watch
(
'sass/**/*.css'
,
[
'postcss-dev'
]);
});
//Postcss正式环境生成
gulp
.
task
(
'postcss-pro'
,
[
'assets'
],
function
()
{
return
gulp
.
src
(
'sass/index.css'
)
.
pipe
(
postcss
(
postcssEnvPlugin
(
'PRO'
)))
.
pipe
(
cssnano
())
.
pipe
(
gulp
.
dest
(
distDir
.
css
))
});
gulp
.
task
(
'js'
,
function
()
{
return
gulp
.
src
(
'./index.js'
)
.
pipe
(
named
())
.
pipe
(
webpack
(
require
(
'./webpack.config.js'
)))
.
pipe
(
gulp
.
dest
(
distDir
.
js
))
});
//font+img->dist/assets
gulp
.
task
(
'assets'
,
[
'img'
,
'font'
]);
gulp
.
task
(
'img'
,
function
()
{
return
gulp
.
src
(
'img/**/*'
)
.
pipe
(
gulp
.
dest
(
distDir
.
img
));
});
gulp
.
task
(
'font'
,
function
()
{
return
gulp
.
src
(
'font/*'
)
.
pipe
(
gulp
.
dest
(
distDir
.
font
))
});
//生成发布目录,可用于上传测试机
gulp
.
task
(
'ge'
,
[
'assets'
,
'postcss-pro'
,
'js'
]);
//server
gulp
.
task
(
'server'
,
()
=>
{
cp
.
exec
(
'npm run start'
,
(
err
,
stdout
,
stderr
)
=>
{
if
(
err
)
{
console
.
log
(
`
exec
error
:
$
{
err
}
`
);
}
});
});
...
...
public/starClassroom/webpack.config.js
View file @
2ce77b8
/**
* weboack configuration
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2016/3/29
*/
var
webpack
=
require
(
'webpack'
);
module
.
exports
=
{
watch
:
true
,
module
:
{
loaders
:
[
{
test
:
/
\.
js$/i
,
exclude
:
/node_modules/
,
loader
:
'babel'
}
]
},
plugins
:
[
new
webpack
.
optimize
.
CommonsChunkPlugin
({
name
:
'lib'
,
minChunks
:
2
})
],
babel
:
{
presets
:
[
'es2015'
],
plugins
:
[
'transform-runtime'
]
}
/**
* weboack configuration
* @author: xuqi<qi.xu@yoho.cn>
* @date: 2016/3/29
*/
var
webpack
=
require
(
'webpack'
);
module
.
exports
=
{
watch
:
true
,
module
:
{
loaders
:
[
{
test
:
/
\.
js$/i
,
exclude
:
/node_modules/
,
loader
:
'babel'
}
]
},
plugins
:
[
new
webpack
.
optimize
.
CommonsChunkPlugin
({
name
:
'lib'
,
minChunks
:
2
})
],
babel
:
{
presets
:
[
'es2015'
],
plugins
:
[
'transform-runtime'
]
}
};
...
...
Please
register
or
login
to post a comment