好久沒寫博文了,今天抽空寫一寫,最近在用vue.js build 項目,今早想使用sass來編譯css,可是安裝好依賴包之后仍然顯示一下錯誤:
ERROR in ENOENT: no such file or directory, scandir '/Users/baidu/Documents/mydata/hfutoj/node_modules/.npminstall/node-sass/3.8.0/node-sass/vendor' @ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-rewriter.js!./~/.npminstall/sass-loader/4.0.0/sass-loader!./~/vue-loader/lib/selector.js?type=style&index=0!./src/components/footer.vue 4:14-273 13:2-17:4 14:20-279
我vue component 里面是這樣用的:
<style lang="scss">
.footer {
margin-top: 3em;
padding-top: 2em;
border-top: 1px solid #ccc;
text-align: center;
font-size: 1em;
clear: both;
height: 4em;}
</style>
我心想不應該啊,我依賴包都安裝了,需要的依賴包是:node-sass ,sass-loader,vue-style-loader,css-loader,分析了下,覺得是node-sass沒安裝好,所以我就卸載了node-sass,然后又重新安裝(注意cnpm是需要使用npm安裝的,這個好像是淘寶的鏡像,比較快):
npm remove node-sass cnpm install node-sass
package.json里是這樣寫的:
{
"name": "hfutoj",
"version": "1.0.0",
"description": "oj for hfut",
"author": "hfuter",
"private": true,
"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js",
"test": ""
},
"dependencies": {
"vue": "^1.0.21",
"babel-runtime": "^6.0.0",
"semantic-ui": "*"
},
"devDependencies": {
"babel-core": "^6.0.0",
"babel-loader": "^6.0.0",
"babel-plugin-transform-runtime": "^6.0.0",
"babel-preset-es2015": "^6.0.0",
"babel-preset-stage-2": "^6.0.0",
"babel-register": "^6.0.0",
"connect-history-api-fallback": "^1.1.0",
"css-loader": "^0.23.0",
"eventsource-polyfill": "^0.9.6",
"express": "^4.13.3",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.4",
"function-bind": "^1.0.2",
"html-webpack-plugin": "^2.8.1",
"http-proxy-middleware": "^0.12.0",
"json-loader": "^0.5.4",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"node-sass": "^3.7.0",
"ora": "^0.2.0",
"sass-loader": "^4.0.0",
"shelljs": "^0.6.0",
"url-loader": "^0.5.7",
"vue-hot-reload-api": "^1.2.0",
"vue-html-loader": "^1.0.0",
"vue-loader": "^8.3.0",
"vue-style-loader": "^1.0.0",
"webpack": "^1.12.2",
"webpack-dev-middleware": "^1.4.0",
"webpack-hot-middleware": "^2.6.0",
"webpack-merge": "^0.8.3"
}
}
但是,仍然報錯,為毛?我發現重裝之后錯誤並沒有變,仍然是.npminstall 下面的文件沒被找到,所以.npminstall(這是個隱藏文件)下的文件並沒有被卸載,所以我決定把整個node_modules刪除了再重裝(cnpm install),之后就好了,不過我把ndoe-sass的版本號由3.8.0換成了3.7.0
