增加右键菜单编译;增加快捷键绑定
parent
4bd21cfa9d
commit
1a75280ef4
|
@ -1,5 +1,7 @@
|
||||||
.vscode/**
|
.vscode/**
|
||||||
.vscode-test/**
|
.vscode-test/**
|
||||||
|
test/**
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
.travis.yml
|
||||||
.gitignore
|
.gitignore
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
# 更新日志
|
# 更新日志
|
||||||
|
|
||||||
|
## [1.1.0] 2018-12-21
|
||||||
|
- 增加右键菜单编译(此命令不受配置中的过滤条件限制,只判断是否scss文件)
|
||||||
|
|
||||||
|
|
||||||
## [1.0.4] 2018-12-17
|
## [1.0.4] 2018-12-17
|
||||||
- 日常维护
|
- 日常维护
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2018
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
10
README.md
10
README.md
|
@ -11,6 +11,13 @@
|
||||||
> 对于小项目来说, webpack等各种工程化工具, 实在过于重, 配置又繁琐。 而且还要安装一大堆模块。
|
> 对于小项目来说, webpack等各种工程化工具, 实在过于重, 配置又繁琐。 而且还要安装一大堆模块。
|
||||||
> 有时候,我们只想简单的使用scss带来的便捷而已。所以本着这个目的, 我自己写了一个vsc的插件, 可以在scss文件保存的时候, 自动编译成css文件(存于当前目录),并且自动补全浏览器前缀。
|
> 有时候,我们只想简单的使用scss带来的便捷而已。所以本着这个目的, 我自己写了一个vsc的插件, 可以在scss文件保存的时候, 自动编译成css文件(存于当前目录),并且自动补全浏览器前缀。
|
||||||
|
|
||||||
|
## 易用性
|
||||||
|
> 本插件只有4个配置选项,而且都是可选的。真正的开箱即用。
|
||||||
|
>> - 是否保存后自动编译; 默认 `是`
|
||||||
|
>> - 是否补全浏览器的前缀; 默认 `是`。 非常实用的一个选项, 在不需要的情况下可以关闭, 以加快编译速度。
|
||||||
|
>> - 编译输出类型, 默认`压缩输出`。 可以自定义, 可以同时编译输出多种格式的文件。
|
||||||
|
>> - 忽略正则。 这个也是非常实用的功能, 毕竟现在的公司前端项目, 都使用webpack等打包工具, 这时候就可以临时停用本插件; 现在呢还有个更加方便的方式, 就是把使用了webpack的项目的目录名配置到这里, 这样插件就会自动忽略这个目录下的scss文件编译了。
|
||||||
|
|
||||||
|
|
||||||
## 兼容性
|
## 兼容性
|
||||||
> 理论上, 兼容Linux/MacOS/Windows, 不过我只在Linux/MacOS下测试过, 用Windows的童鞋请自行测试,有什么问题, 可以提issue。
|
> 理论上, 兼容Linux/MacOS/Windows, 不过我只在Linux/MacOS下测试过, 用Windows的童鞋请自行测试,有什么问题, 可以提issue。
|
||||||
|
@ -19,7 +26,8 @@
|
||||||
> 直接在商店搜索安装即可。
|
> 直接在商店搜索安装即可。
|
||||||
|
|
||||||
|
|
||||||
## .browserslistrc 范例
|
## .browserslistrc 示例
|
||||||
|
> 这只是个示例, 可自行根据项目需求, 修改配置。 没有配置则默认为 `last 2 version`。
|
||||||
|
|
||||||
```
|
```
|
||||||
ie > 9
|
ie > 9
|
||||||
|
|
32
index.js
32
index.js
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
const vsc = require('vscode')
|
const vsc = require('vscode')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const cp = require('child_process')
|
|
||||||
|
|
||||||
const fs = require('iofs')
|
const fs = require('iofs')
|
||||||
const scss = require('node-sass')
|
const scss = require('node-sass')
|
||||||
|
@ -16,13 +15,7 @@ const postcss = require('postcss')
|
||||||
const autoprefixer = require('autoprefixer')
|
const autoprefixer = require('autoprefixer')
|
||||||
let prefixer
|
let prefixer
|
||||||
|
|
||||||
const std = vsc.window.createOutputChannel('scss-to-css')
|
const log = console.log
|
||||||
std.out = function(msg) {
|
|
||||||
std.appendLine(msg)
|
|
||||||
}
|
|
||||||
const log = function(...args) {
|
|
||||||
console.log.apply(console, args)
|
|
||||||
}
|
|
||||||
|
|
||||||
const render = function(style, file) {
|
const render = function(style, file) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
@ -96,7 +89,7 @@ const Compiler = {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
std.out(err)
|
vsc.window.showInformationMessage(err)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -130,8 +123,6 @@ const Compiler = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function activate(ctx) {
|
function activate(ctx) {
|
||||||
// log('hello, the extend scss--to-css is running....')
|
|
||||||
|
|
||||||
let folders = vsc.workspace.workspaceFolders
|
let folders = vsc.workspace.workspaceFolders
|
||||||
let wsf = ''
|
let wsf = ''
|
||||||
let browsersrc = ''
|
let browsersrc = ''
|
||||||
|
@ -140,6 +131,12 @@ function activate(ctx) {
|
||||||
}
|
}
|
||||||
if (wsf) {
|
if (wsf) {
|
||||||
browsersrc = path.join(wsf, '.browserslistrc')
|
browsersrc = path.join(wsf, '.browserslistrc')
|
||||||
|
} else {
|
||||||
|
let editor = vsc.window.activeTextEditor
|
||||||
|
if (editor) {
|
||||||
|
wsf = path.dirname(editor.document.fileName)
|
||||||
|
browsersrc = path.join(wsf, '.browserslistrc')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fs.exists(browsersrc)) {
|
if (fs.exists(browsersrc)) {
|
||||||
|
@ -163,10 +160,15 @@ function activate(ctx) {
|
||||||
vsc.workspace.onDidSaveTextDocument(doc => {
|
vsc.workspace.onDidSaveTextDocument(doc => {
|
||||||
Compiler.filter(doc)
|
Compiler.filter(doc)
|
||||||
})
|
})
|
||||||
// let cmd = vsc.commands.registerCommand('ScssCompiler.compile', function(r) {
|
|
||||||
// log('----------------------------====================-----------------')
|
let cmd = vsc.commands.registerCommand('Scss2css.compile', _ => {
|
||||||
// })
|
let editor = vsc.window.activeTextEditor
|
||||||
// ctx.subscriptions.push(cmd)
|
|
||||||
|
if (editor) {
|
||||||
|
Compiler.compile(editor.document)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
ctx.subscriptions.push(cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
function deactivate() {}
|
function deactivate() {}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
|
@ -2,7 +2,7 @@
|
||||||
"name": "scss-to-css",
|
"name": "scss-to-css",
|
||||||
"displayName": "scss-to-css",
|
"displayName": "scss-to-css",
|
||||||
"description": "🔥 最简单易用的SCSS编译器, 可自动编译scss文件及补全前缀",
|
"description": "🔥 最简单易用的SCSS编译器, 可自动编译scss文件及补全前缀",
|
||||||
"version": "1.0.4",
|
"version": "1.1.0",
|
||||||
"publisher": "yutent",
|
"publisher": "yutent",
|
||||||
"author": "Yutent [@yutent]",
|
"author": "Yutent [@yutent]",
|
||||||
"icon": "logo.png",
|
"icon": "logo.png",
|
||||||
|
@ -13,10 +13,25 @@
|
||||||
"activationEvents": ["*"],
|
"activationEvents": ["*"],
|
||||||
"main": "./index",
|
"main": "./index",
|
||||||
"contributes": {
|
"contributes": {
|
||||||
"context": [
|
"commands": [
|
||||||
{
|
{
|
||||||
"command": "Scss2css.compile",
|
"command": "Scss2css.compile",
|
||||||
"title": "Compile this scss file"
|
"title": "Compile this scss..."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"menus": {
|
||||||
|
"editor/context": [
|
||||||
|
{
|
||||||
|
"when": "!inOutput",
|
||||||
|
"command": "Scss2css.compile",
|
||||||
|
"title": "Compile this scss..."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"keybindings": [
|
||||||
|
{
|
||||||
|
"command": "Scss2css.compile",
|
||||||
|
"key": "cmd+shift+c"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"configuration": {
|
"configuration": {
|
||||||
|
|
Loading…
Reference in New Issue