mac安装npm插件的权限问题

在mac全局上安装npm的插件会有权限问题,一般来说大家会在前面加sudo来解决。

可是有的插件在自行安装npm插件的时候不会加sudo,比如react在初始化项目的时候。

下面这个命令一劳永逸解决问题。
sudo chown -R 'whoami' /usr/local
详情可参阅github上的解决方案:https://github.com/npm/npm/issues/5922

当然也可以改的更彻底一些
sudo chown -R 'whoami':staff /usr/local
sudo chown -R 'whoami':staff /Users/'whoami'/.npm

另外关于npm下载速度慢得问题可以使用淘宝的镜像库

npm install- g cnpm --registry=http://registry.npm.taobao.org

总结一下写grunt脚本的思路

今天终于写个接近最终版的脚本,简单总结一下思路。
先确定我都要干什么,总结如下:

【cssmin】压缩css

【uglify】压缩js

【cssmin】合并css到style.css

【uglify】合并js库/框架文件到lib.js

【uglify】合并自定义js到script.js

【copy】复制需要处理的html到目标地点(单页面项目只涉及到一个文件)

【usemin】然后处理目标文件

【filerev】处理目标文件版本号问题(对合并后的制定文件,现在只写了js和css)

 

弄清思路后一步步操作,这个脚本总算是正常工作了。

 

和一些说明有所不同的是,我这里没有用concat、jshint、clean。

concat是被cssmin和uglify的功能替代掉了,不写也可以合并。

jshint没用主要是因为对自己代码不是特别有自信,用了以后感觉要花好多时间调试…

clean是真心用不上。

 

参考文章:

http://ericnishio.com/blog/compile-less-files-with-grunt
http://www.xuanfengge.com/npm-installation-did-not-succeed-and-github-will-not-open-solutions.html
https://www.npmjs.org/package/grunt-html-build
https://www.npmjs.org/package/grunt-contrib-concat
https://www.npmjs.org/package/grunt-contrib-less
https://www.npmjs.org/package/grunt-contrib-watch

 

批处理压缩css和js for nodejs

同事推荐的压缩css和js的方法,是运行在nodejs的基础上的,所以你要先安装一个nodejs。

在有nodejs的基础上,进入命令行模式分别运行

npm install clean-css -g

npm install uglifyjs -g

clean-css是压缩css的,uglifyjs是压缩js的。
然后新建两个批处理文件。
@echo off
:: 设置压缩css文件的根目录,脚本会自动按树层次查找和压缩所有的css
SET OUTFOLDER= 压缩后的目标目录
echo 正在深度复制文件
xcopy 准备压缩的目录*.* "%OUTFOLDER%" /s /e && echo 复制成功 || echo 复制失败,请检查文件是否存在!
echo 复制完成
:: 设置压缩的路径
chdir /d %OUTFOLDER%
echo 正在查找CSS 文件
for /r . %%b in (*.css) do (
@echo 正在压缩 %%~b ...
cleancss -o %%~fb %%~fb
)
echo CSS压缩完成
echo 完成!

@echo off
:: 设置压缩JS文件的根目录,脚本会自动按树层次查找和压缩所有的JS
SET OUTFOLDER = 压缩后的目标目录
echo 正在深度复制文件
xcopy 准备压缩的目录*.* "%OUTFOLDER%" /s /e && echo 复制成功 || echo 复制失败,请检查文件是否存在!
echo 复制完成
:: 设置压缩的路径
chdir /d %OUTFOLDER%
echo 正在查找JS文件
for /r . %%a in (*.js) do (
@echo 正在压缩 %%~a ...
uglifyjs %%~fa -o %%~fa
)
echo JS压缩完成
echo 完成!

目录的格式应该是 C:\abc\
只要你写的路径是绝对路径批处理文件可以放在任意你喜欢的位置。
如果有需要,你也可以写到一起。