2016-06-12 114 views
5

我在Webpack上有一个项目,我正尝试安装SASS transpiling。我相信我相当接近,尽管我的配置有问题(code and details in the gist here)。如何使用ESLint解决导入/未解决的错误?

用,因为它是代码运行的WebPack产生以下错误:

/foobar/src/js/components/App.jsx 
    6:8 error Unable to resolve path to module '../../scss/components/app' import/no-unresolved 

已经花在这一段时间,我注意到,如果我import '../../scss/components/app.scss'替换App.jsximport 'scss/components/app'路线,transpilation作品。这使我相信有两个问题:

  1. 我的resolve.root Webpack配置不工作,因为相对导入工作,但不是绝对的。
  2. 我的resolve.extensions也没有应用Webpack配置,因为我需要附加.scss文件扩展名才能正常工作。

其他说明:

  • 我使用的WebPack 1.13.1。
  • 如果我有意将语法错误引入SCSS文件,webpack会正确提示我有关该文件的问题。
  • 我也尝试将我的resolve.root配置设置为一个数组(即[path.resolve(__dirname, './src')])无济于事。
  • 从目标方面来说,我希望能实现类似于this example的东西。
  • 我试过用console-loader调试import路径,并得到undefined

任何帮助将不胜感激,谢谢!

UPDATE: 一位朋友刚刚分享,这个问题是不是从sass-loader来的/ etc,但是从eslint。这意味着这个问题的性质将会非常不同(更少的webpack,更重要)。

无论如何,我的.eslintrc延伸AirBNB的,我猜我需要根据this plugin的细节修改它。

感兴趣的部分是:

settings: 
    import/ignore: 
    - node_modules  # mostly CommonJS (ignored by default) 
    - \.coffee$   # fraught with parse errors 
    - \.(scss|less|css)$ # can't parse unprocessed CSS modules, either 

我已经更新了我.eslintrc类似于:

{ 
    "extends": "airbnb", 
    "settings": { 
     "import/ignore": [".scss$"] 
    } 
} 

,但我仍然得到错误。有任何想法吗?

回答

4

你可以发表所有文件的要点?我试图通过查看代码来寻找问题,但在webpack配置中所有文件和导入的可运行示例会更有帮助。

我很好奇你为什么加载eslint而不是预加载器。您需要将其添加到预加载器。

+1

感谢您的快速响应!将ESLint从'module.loaders'移动到'module.preloaders'确实解决了这个问题。 –