为什么可以';是否导入已发现的眼镜模块的sassDir文件?

为什么可以';是否导入已发现的眼镜模块的sassDir文件?,sass,gulp-sass,node-sass,eyeglass,Sass,Gulp Sass,Node Sass,Eyeglass,我正在尝试开始使用eyeglass@1.2.1我遇到了一些问题,尽管发现了眼镜模块,@import将其导入失败 这里是gulp任务(此时仅使用gulp包装,因为我不知道如何获得漂亮的eyeglass调试输出),它使用节点sass编译单个文件 gulp.task('sass', () => { const options = eyeglass({ file: path.join('test', 'test.scss'), engines: { sass: no

我正在尝试开始使用
eyeglass@1.2.1
我遇到了一些问题,尽管发现了眼镜模块,
@import
将其导入失败

这里是gulp任务(此时仅使用gulp包装,因为我不知道如何获得漂亮的eyeglass调试输出),它使用节点sass编译单个文件

gulp.task('sass', () => {
  const options = eyeglass({
    file: path.join('test', 'test.scss'),
    engines: {
      sass: nodeSass
    }
  });
  return nodeSass.render(options, (err, result) => console.log(err, result));
});
发生这种情况:

eyeglass:modules discovered modules
eyeglass:modules    :root(test)
eyeglass:modules    ├── eyeglass@1.2.1
eyeglass:modules    ├── eyeglass-sample@0.0.3
eyeglass:modules    └── true@2.2.1
eyeglass:modules     +0ms
eyeglass:functions functions discovered in module eyeglass:
• eyeglass-asset-uri($registered-assets, $relative-path)
• eyeglass-normalize-uri($uri, $type: web)
• eyeglass-uri-preserve($uri)
• eyeglass-uri-restore($uri)
• eyeglass-version($module: eyeglass)
• eyeglass-fs-absolute-path($fs-registered-pathnames, $path-id, $segments...)
• eyeglass-fs-join($segments...)
• eyeglass-fs-exists($absolute-path)
• eyeglass-fs-path-separator()
• eyeglass-fs-list-files($directory, $glob: '*')
• eyeglass-fs-list-directories($directory, $glob: '*')
• eyeglass-fs-parse-filename($filename)
• eyeglass-fs-info($filename)
• eyeglass-fs-read-file($filename) +13ms
eyeglass:functions functions discovered in module eyeglass-sample:
• hello($name) +1ms
eyeglass:functions all discovered functions:
• eyeglass-asset-uri($registered-assets, $relative-path)
• eyeglass-normalize-uri($uri, $type: web)
• eyeglass-uri-preserve($uri)
• eyeglass-uri-restore($uri)
• eyeglass-version($module: eyeglass)
• eyeglass-fs-absolute-path($fs-registered-pathnames, $path-id, $segments...)
• eyeglass-fs-join($segments...)
• eyeglass-fs-exists($absolute-path)
• eyeglass-fs-path-separator()
• eyeglass-fs-list-files($directory, $glob: '*')
• eyeglass-fs-list-directories($directory, $glob: '*')
• eyeglass-fs-parse-filename($filename)
• eyeglass-fs-info($filename)
• eyeglass-fs-read-file($filename)
• hello($name)
[19:25:56] Finished 'sass' after 97 ms
eyeglass:import true can be imported from ~/eyeglass-test/test/test.scss +5ms
{ [Error: Error: Could not import true from any of the following locations:
  ~/eyeglass-test/test/true.scss
  ~/eyeglass-test/test/true.sass
  ~/eyeglass-test/test/true.css
  ~/eyeglass-test/test/_true.scss
  ~/eyeglass-test/test/_true.sass
  ~/eyeglass-test/test/_true.css
  ~/eyeglass-test/test/true/index.scss
  ~/eyeglass-test/test/true/index.sass
  ~/eyeglass-test/test/true/index.css
  ~/eyeglass-test/test/true/_index.scss
  ~/eyeglass-test/test/true/_index.sass
  ~/eyeglass-test/test/true/_index.css]
  status: 1,
  file: '~/eyeglass-test/test/test.scss',
  line: 1,
  column: 9,
  message: 'Error: Could not import true from any of the following locations:
    ~/eyeglass-test/test/true.scss
    ~/eyeglass-test/test/true.sass
    ~/eyeglass-test/test/true.css
    ~/eyeglass-test/test/_true.scss
    ~/eyeglass-test/test/_true.sass
    ~/eyeglass-test/test/_true.css
    ~/eyeglass-test/test/true/index.scss
    ~/eyeglass-test/test/true/index.sass
    ~/eyeglass-test/test/true/index.css
    ~/eyeglass-test/test/true/_index.scss
    ~/eyeglass-test/test/true/_index.sass
    ~/eyeglass-test/test/true/_index.css',
      formatted: 'Error: Error: Could not import true from any of the following locations:
    ~/eyeglass-test/test/true.scss
    ~/eyeglass-test/test/true.sass
    ~/eyeglass-test/test/true.css
    ~/eyeglass-test/test/_true.scss
    ~/eyeglass-test/test/_true.sass
    ~/eyeglass-test/test/_true.css
    ~/eyeglass-test/test/true/index.scss
    ~/eyeglass-test/test/true/index.sass
    ~/eyeglass-test/test/true/index.css
    ~/eyeglass-test/test/true/_index.scss
    ~/eyeglass-test/test/true/_index.sass
    ~/eyeglass-test/test/true/_index.css
  on line 1 of test/test.scss
  >> @import "true";
     --------^
  ' } null
我已经尝试过几个潜在的眼镜依赖项,例如

  • 目镜样品
  • 眼镜数学
  • 苏西
  • 真的
我得到的失败类型与它们相同,它们似乎在调试输出中可用,但尝试按名称导入它们或导入它们的sass目录中的任何内容都失败

即使在显示非常具体的消息时,也会出现这些故障,这些消息表示事物是可导入的:

eyeglass:import susy can be imported from ~/eyeglass-test/sass/_test.scss +14ms
...
Error: File to import not found or unreadable: susy.
如果我再次从零开始,我会遇到这样的情况,我已经过去了(尽管我不记得怎么做):

>DEBUG=*吞下sass
[12:51:50]需要外部模块巴别塔寄存器
[12:51:53]使用gulpfile~/Projects/eyeglass test/gulpfile.babel.js
[12:51:53]开始“sass”。。。
眼镜:发现的模块
眼镜:模块:根(眼镜测试)
眼镜:模块├── eyeglass@1.2.1
眼镜:模块└── susy@2.2.12
目镜:模块+0ms
[12:51:53]“sass”在29毫秒后出错
[12:51:53]类型错误:this.main不是函数
在EyeglassModule.init(~/eyeglass test/node_modules/eyeglass/lib/modules/EyeglassModule.js:80:33)
在~/eyeglass test/node_modules/eyeglass/lib/modules/EyeglassModules.js:83:9
at Array.forEach(本机)
在EyeglassModules.init(~/eyeglass test/node_modules/eyeglass/lib/modules/EyeglassModules.js:82:13)
在新的眼镜上(~/Eyeglass test/node_modules/Eyeglass/lib/index.js:35:16)
在Eyeglass(~/Eyeglass test/node_modules/Eyeglass/lib/index.js:18:13)

一口吞下。

我能把这个复制好几次,但不得不把它放下来一点。当我回到这里,为我尝试过的各种事情建立了个人的例子时,我发现我比我想象的更进一步,我的主要问题是:

  • 真实是独一无二的。关于如何最好地使用True和eyeglass,还有一些地方我还不太清楚,但主要的观点还是存在的
  • Eyeglass不支持传递依赖项,如果它们是
    devdependency
    ;模块作者需要确保在
    依赖项
    中列出所有眼镜依赖项
  • 以下是我最终创建的用于故障排除的所有示例,以防它们对其他人有用

    > DEBUG=* gulp sass
    [12:51:50] Requiring external module babel-register
    [12:51:53] Using gulpfile ~/Projects/eyeglass-test/gulpfile.babel.js
    [12:51:53] Starting 'sass'...
      eyeglass:modules discovered modules
      eyeglass:modules  :root(eyeglass-test)
      eyeglass:modules  ├── eyeglass@1.2.1
      eyeglass:modules  └── susy@2.2.12
      eyeglass:modules   +0ms
    [12:51:53] 'sass' errored after 29 ms
    [12:51:53] TypeError: this.main is not a function
        at EyeglassModule.init (~/eyeglass-test/node_modules/eyeglass/lib/modules/EyeglassModule.js:80:33)
        at ~/eyeglass-test/node_modules/eyeglass/lib/modules/EyeglassModules.js:83:9
        at Array.forEach (native)
        at EyeglassModules.init (~/eyeglass-test/node_modules/eyeglass/lib/modules/EyeglassModules.js:82:13)
        at new Eyeglass (~/eyeglass-test/node_modules/eyeglass/lib/index.js:35:16)
        at Eyeglass (~/eyeglass-test/node_modules/eyeglass/lib/index.js:18:13)
        at Gulp.<anonymous> (~/eyeglass-test/gulpfile.babel.js:7:19)
        at module.exports (~/eyeglass-test/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7)
        at Gulp.Orchestrator._runTask (~/eyeglass-test/node_modules/gulp/node_modules/orchestrator/index.js:273:3)
        at Gulp.Orchestrator._runStep (~/eyeglass-test/node_modules/gulp/node_modules/orchestrator/index.js:214:10)