我一直在与webpack争斗超过一天,以获取通过ExtractTextPlugin加载的scss文件的源映射。
每次我收到错误:
import sys
from distutils.core import setup
setup(
name='SomePackage',
author='dave',
version='0.1.0',
author_email='dave',
packages=['apples',],
license='LICENSE.txt',
url="None",
include_package_data=True,
description='i love apples',
long_description=open('README.txt').read(),
install_requires=[
"matplotlib >= 2.0.0",
"numpy >= 1.11.3",
"openpyxl >= 2.4.1",
"openturns >= 1.9",
"pandas >= 0.19.2",
"pip >= 9.0.1",
"pyodbc >= 4.0.17",
"pyqt >= 5.6.0",
"pywin32 >= 220.0.0",
"pywinauto >= 0.6.3",
"qt >= 5.6.2",
"scipy >= 0.18.1",
"statistics >= 1.0.3.5",
"tqdm >= 4.15.0",
"xlwings >= 0.10.2",
], )
我的webpack配置模块如下所示:
TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.relative (path.js:538:5)
at Object.onRender (C:\Git\app\node_modules\sass-loader\index.js:282:42)
at Object.<anonymous> (C:\Git\app\node_modules\async\dist\async.js:2244:31)
at Object.callback (C:\Git\app\node_modules\async\dist\async.js:906:16)
at options.success (C:\Git\app\node_modules\node-sass\lib\index.js:303:32)
我的装载机版本是: css-loader:0.28.7 sass-loader:4.1.1 style-loader:0.13.2 node-sass:3.13.1 webpack:2.2.1 extract-text-webpack-plugin:2.1.0
当我删除sourceMap属性或从字符串中删除属性时:
{
test: /\.(css)$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader'})
},
{
test: /\.(scss)$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}]})
},
运行得很好。如果我将“?sourceMap”添加到加载器的末尾,那么也会破坏构建。从我一直在阅读,看起来它可能是版本问题,但我不确定。任何想法都将不胜感激。
答案 0 :(得分:0)
事实证明我找到了一个可以在这里工作的修复: https://github.com/bholloway/resolve-url-loader/issues/33#issuecomment-249830601
我不知道为什么它有点困扰我。如果有人想到为什么会有效,我很乐意听到它。
答案 1 :(得分:0)
这是一个版本问题。创建webpack.LoaderOptionsPlugin
是为了帮助转换到新语法。最初,加载器只允许接受选项/参数作为字符串。 Webpack更新了语法,但是一些加载器还没有赶上,或者你有一个旧版本,或者你可能需要升级你的webpack版本。当我将webpack从1x升级到2x时,我遇到了类似的问题。最终,我更新到3x并且不再有这个问题。