【发布时间】:2020-12-09 17:04:57
【问题描述】:
假设我想从我的主要app.scss 中的节点模块导入一些样式表:
@import '~bootstrap/scss/bootstrap';
这将由 PhpStorm 正确解决,并由 Nuxt.js 构建,一切都很好。
现在,如果我想对 a scoped node module(名称格式为 @scope/module 的节点模块)做同样的事情,Nuxt.js 和 PhpStorm 会出现分歧:
-
@import '@fortawesome/fontawesome-svg-core/styles.css';这在 Nuxt.js 中运行良好,构建继续没有问题,但 PhpStorm 强调整个事情说
Cannot resolve directory '@fortawesome' -
@import '~@fortawesome/fontawesome-svg-core/styles.css';这被 PhpStorm 理解并且可以很好地解决,但是会导致 Nuxt.js 构建失败:
ERROR in ./client/assets/sass/app.scss
Module build failed (from ./node_modules/extract-css-chunks-webpack-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/src/index.js):
Error: Can't resolve '~@fortawesome/fontawesome-svg-core/styles.css'
所以我的问题是:哪种语法会被认为是正确的,是否可以同时让 PhpStorm 和 Nuxt.js 满意?
对我来说,~@ 似乎更有意义,因为~ 解析为我的node_modules 的路径,并且其中的实际文件夹名称以@ 开头。与非作用域节点模块相比,仅使用 @ 会破坏这种模式,根据 PhpStorm 和 Nuxt.js 都需要 ~ 前缀。
【问题讨论】:
标签: webpack sass phpstorm nuxt.js node-modules