@@ -29,6 +29,13 @@ const developmentPrivateDir = () => {
29
29
return path . join ( meteorRoot , 'private' ) ;
30
30
} ;
31
31
32
+ const developmentPackagesPrivateDir = ( ) => {
33
+ if ( ! isDevEnv ( ) )
34
+ return ;
35
+ const meteorRoot = process . cwd ( ) . replace ( / ( \. m e t e o r .* ) / g, '' ) ;
36
+ return path . join ( meteorRoot , '.meteor' , 'local' , 'build' , 'programs' , 'server' , 'assets' , 'packages' ) ;
37
+ } ;
38
+
32
39
const productionPrivateDir = ( ) => {
33
40
if ( isDevEnv ( ) )
34
41
return ;
@@ -40,8 +47,10 @@ const productionPrivateDir = () => {
40
47
const privateDir = process . env . BUNDLE_PATH || process . env . APP_DIR || productionPrivateDir ( ) ;
41
48
42
49
let ROOT = privateDir && path . join ( privateDir , 'programs' , 'server' , 'assets' , 'app' ) ;
50
+ let PACKAGES_ROOT = privateDir && path . join ( privateDir , 'programs' , 'server' , 'assets' , 'packages' ) ;
43
51
44
52
ROOT = ROOT || developmentPrivateDir ( ) ;
53
+ PACKAGES_ROOT = PACKAGES_ROOT || developmentPackagesPrivateDir ( ) ;
45
54
46
55
Utils = {
47
56
// Takes an HTML string and outputs a text version of it. Catches and logs errors.
@@ -131,8 +140,10 @@ Utils = {
131
140
return '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n' + html ;
132
141
} ,
133
142
134
- readFile : function ( relativePathFromApp ) {
135
- const file = path . join ( ROOT , relativePathFromApp ) ;
143
+ readFile : function ( relativePathFromApp , packageFolderName ) {
144
+ const file = packageFolderName ?
145
+ path . join ( PACKAGES_ROOT , packageFolderName , relativePathFromApp )
146
+ : path . join ( ROOT , relativePathFromApp ) ;
136
147
137
148
try {
138
149
return fs . readFileSync ( file , {
@@ -145,13 +156,15 @@ Utils = {
145
156
} ,
146
157
147
158
// Take a path to a SCSS file and compiles it to CSS with `node-sass`.
148
- toCSS : function ( scss ) {
159
+ toCSS : function ( scss , packageFolderName ) {
149
160
if ( ! Package [ 'chrisbutler:node-sass' ] ) {
150
161
Utils . Logger . warn ( 'Sass support is opt-in since lookback:[email protected] . Please add chrisbutler:node-sass from Atmosphere and try again.' , TAG ) ;
151
162
return Utils . readFile ( scss ) ;
152
163
}
153
164
154
- const file = path . join ( ROOT , scss ) ;
165
+ const file = packageFolderName ?
166
+ path . join ( PACKAGES_ROOT , packageName , relativePathFromApp )
167
+ : path . join ( ROOT , scss ) ;
155
168
const sass = Package [ 'chrisbutler:node-sass' ] . sass ;
156
169
157
170
try {
0 commit comments