Skip to content

Commit 36e31a0

Browse files
committed
Fix bugs and hotreloads imported sass files
1 parent ba00dcc commit 36e31a0

File tree

5 files changed

+32
-26
lines changed

5 files changed

+32
-26
lines changed

.meteor/versions

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ akryum:npm-check@0.0.3
33
akryum:vue@1.0.4
44
akryum:vue-apollo@0.0.9
55
akryum:vue-coffee@0.0.2
6-
akryum:vue-component@0.6.4
6+
akryum:vue-component@0.6.5
77
akryum:vue-component-dev-client@0.0.6
88
akryum:vue-component-dev-server@0.0.1
99
akryum:vue-i18n@0.0.3
1010
akryum:vue-i18n-ui@0.0.4
1111
akryum:vue-jade@0.0.1
1212
akryum:vue-less@0.0.4
1313
akryum:vue-router@0.2.1
14-
akryum:vue-sass@0.0.1
14+
akryum:vue-sass@0.0.2
1515
akryum:vue-stylus@0.0.2
1616
akryum:vuex@0.3.0
1717
allow-deny@1.0.5

packages/vue-component/package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package.describe({
22
name: 'akryum:vue-component',
3-
version: '0.6.4',
3+
version: '0.6.5',
44
summary: 'VueJS single-file components that hot-reloads',
55
git: 'https://github.com/Akryum/meteor-vue-component',
66
documentation: 'README.md'

packages/vue-component/plugin/tag-handler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ VueComponentTagHandler = class VueComponentTagHandler {
246246
throwCompileError({
247247
inputFile: this.inputFile,
248248
tag: 'style',
249-
charIndex: tag.tagStartIndex,
249+
charIndex: styleTag.tagStartIndex,
250250
action: 'compiling',
251251
lang,
252252
error: e,

packages/vue-sass/package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package.describe({
22
name: 'akryum:vue-sass',
3-
version: '0.0.1',
3+
version: '0.0.2',
44
summary: 'Add sass and scss support for vue components',
55
git: 'https://github.com/Akryum/meteor-vue-component',
66
documentation: 'README.md'

packages/vue-sass/vue-sass.js

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,28 @@ import fs from 'fs';
66
import sass from 'node-sass';
77
import {Meteor} from 'meteor/meteor';
88

9-
function resolveImport(url, prev, done) {
10-
let resolvedFilename;
11-
if (url.indexOf('~') === 0) {
12-
resolvedFilename = url.substr(1);
13-
/*} else if (url.indexOf('{') === 0) {
14-
resolvedFilename = decodeFilePath(url);*/
15-
} else {
16-
let currentDirectory = path.dirname(this.options.outFile);
17-
resolvedFilename = path.resolve(currentDirectory, url);
18-
}
9+
function resolveImport(dependencyManager) {
10+
return function (url, prev, done) {
11+
let resolvedFilename;
12+
if (url.indexOf('~') === 0) {
13+
resolvedFilename = url.substr(1);
14+
/*} else if (url.indexOf('{') === 0) {
15+
resolvedFilename = decodeFilePath(url);*/
16+
} else {
17+
let currentDirectory = path.dirname(this.options.outFile);
18+
resolvedFilename = path.resolve(currentDirectory, url);
19+
}
1920

20-
if (!fs.existsSync(resolvedFilename)) {
21-
done(new Error('Unknown import (file not found): ' + url));
22-
} else {
23-
done({
24-
file: resolvedFilename
25-
});
26-
}
21+
if (!fs.existsSync(resolvedFilename)) {
22+
done(new Error('Unknown import (file not found): ' + url));
23+
} else {
24+
dependencyManager.addDependency(resolvedFilename);
25+
26+
done({
27+
file: resolvedFilename
28+
});
29+
}
30+
};
2731
}
2832

2933
function decodeFilePath(filePath) {
@@ -41,11 +45,12 @@ function decodeFilePath(filePath) {
4145

4246
global.vue.lang.scss = Meteor.wrapAsync(function({
4347
source,
44-
inputFile
48+
inputFile,
49+
dependencyManager
4550
}, cb) {
4651
sass.render({
4752
data: source,
48-
importer: resolveImport,
53+
importer: resolveImport(dependencyManager),
4954
outFile: inputFile.getPathInPackage() + '.css',
5055
sourceMap: true,
5156
sourceMapContents: true
@@ -63,11 +68,12 @@ global.vue.lang.scss = Meteor.wrapAsync(function({
6368

6469
global.vue.lang.sass = Meteor.wrapAsync(function({
6570
source,
66-
inputFile
71+
inputFile,
72+
dependencyManager
6773
}, cb) {
6874
sass.render({
6975
data: source,
70-
importer: resolveImport,
76+
importer: resolveImport(dependencyManager),
7177
outFile: inputFile.getPathInPackage() + '.css',
7278
sourceMap: true,
7379
sourceMapContents: true,

0 commit comments

Comments
 (0)