Javascript 网页:';导入&x27;不工作,而';要求';行吗
我在使用网页包时遇到了一个奇怪的问题 这是我的webpack.config.js:Javascript 网页:';导入&x27;不工作,而';要求';行吗,javascript,node.js,ecmascript-6,webpack,babeljs,Javascript,Node.js,Ecmascript 6,Webpack,Babeljs,我在使用网页包时遇到了一个奇怪的问题 这是我的webpack.config.js: 从“webpack”导入webpack; 从“路径”导入路径; //不工作:从“提取文本网页包插件”导入提取文本插件; const ExtractTextPlugin=require(“提取文本网页包插件”); 常量全局={ “process.env.NODE_env”:JSON.stringify(“生产”), __戴夫:错 }; 导出默认值{ 是的, devtool:“源地图”, 没错, 条目:“./src/
从“webpack”导入webpack;
从“路径”导入路径;
//不工作:从“提取文本网页包插件”导入提取文本插件;
const ExtractTextPlugin=require(“提取文本网页包插件”);
常量全局={
“process.env.NODE_env”:JSON.stringify(“生产”),
__戴夫:错
};
导出默认值{
是的,
devtool:“源地图”,
没错,
条目:“./src/bootstrap”,
目标:“网络”,
输出:{
path:path.join(uu dirname,“dist”),
公共路径:“/”,
文件名:“bundle.js”
},
决心:{
root:path.resolve(_dirname),
别名:{
“~”:“src”
},
扩展名:[“”,.js“,.jsx”]
},
插件:[
新建webpack.optimize.OccurenceOrderPlugin(),
新网页包。定义插件(全局),
新的ExtractTextPlugin(“style.css”),
新建网页包.optimize.dedueplugin(),
新建webpack.optimize.UglifyJsPlugin()
],
模块:{
装载机:[
{test:/\.jsx?$/,包括:path.join(\uu dirname,“src”),加载程序:[“babel”]},
{test://\.eot(\?v=\d+。\d+。\d+)?$/,加载程序:“文件”},
{test://\(woff | woff2)$/,加载程序:“文件加载程序?前缀=font/&limit=5000”},
{test://\.ttf(\?v=\d+。\d+。\d+)?$/,加载器:“文件加载器?限制=10000&mimetype=application/octet stream”},
{test://\.svg(\?v=\d+。\d+。\d+?$/,加载程序:“文件加载程序?限制=10000&mimetype=image/svg+xml”},
{test://\(jpe?g | png | gif)$/i,加载程序:[“文件”]},
{test:/\.ico$/,loader:“文件加载器?名称=[name]。[ext]”},
{
测试:/(\.css\.scss)$/,
加载器:ExtractTextPlugin.extract(“css?sourceMap!sass?sourceMap”)
}
]
}
};
如您所见:我设置了一个别名“~”
,指向我的“src”
目录
根据webpack文档,我应该能够通过以下方式导入模块:
从“~/utilities/service stub”导入{ServiceStub}”;
提示:文件service stub.js
位于此处:[\uu dirname]/src/utilities/service stub.js
但是,这不起作用,因为webpack正在抛出错误(“未找到路径”)
当我使用require
而不是import
时,一切正常:
const{ServiceStub}=require(“~/utilities/ServiceStub”);
webpack.config.js
本身也存在同样的问题:
从“webpack”导入webpack;
从“路径”导入路径;
//不工作:从“提取文本网页包插件”导入提取文本插件;
const ExtractTextPlugin=require(“提取文本网页包插件”);
在这里,有些模块可以通过import
(模块webpack
和path
)很好地导入,有些则不能(模块提取文本webpack插件
)
我浏览了几十个论坛,但还没有找到解决方案。问题在于ESLint,而不是webpack 当你像这样在网页包中使用别名时
resolve: {
root: path.resolve(__dirname),
alias: {
"~": "src"
},
extensions: ["", ".js", ".jsx"]
}
你是这样导入的
import { ServiceStub } from "~/services/service-stub";
ESLint无法解析别名并报告错误
若要使其正常工作,您必须告诉ESLint忽略一些规则
“导入/无未解析”:0
。这似乎没问题,因为如果导入的文件确实丢失,webpack会报告错误本身。问题是ESLint,而不是webpack
当你像这样在网页包中使用别名时
resolve: {
root: path.resolve(__dirname),
alias: {
"~": "src"
},
extensions: ["", ".js", ".jsx"]
}
你是这样导入的
import { ServiceStub } from "~/services/service-stub";
ESLint无法解析别名并报告错误
若要使其正常工作,您必须告诉ESLint忽略一些规则
“导入/无未解析”:0
。这似乎没问题,因为如果导入的文件确实丢失了,webpack本身会报告一个错误。第一个导入命名的导出,第二个则是destructures required'd对象。所以它们不是等价的代码>它不起作用。很难对未显示的代码给出具体建议。service stub.js如何准确导出ServiceStub
?导出方式如下:export{ServiceStub,ProcessingMode}代码>。顺便说一句:如果我使用相对路径,import{ServiceStub}从“./../utilities/service stub”导入,import可以与ES6一起正常工作代码>。但我想避免相对路径。哦,对了,我误解了你的问题。任何机会从“src/utilities/service stub”导入{ServiceStub}代码>工作正常吗?(我认为它不应该)如果它不-尝试添加resolve:{modulesDirectories:['node_modules','.],}
到Web包配置第一个导入命名的导出,第二个-解构所需的对象。所以它们不是等价的代码>它不起作用。很难对未显示的代码给出具体建议。service stub.js如何准确导出ServiceStub
?导出方式如下:export{ServiceStub,ProcessingMode}代码>。顺便说一句:如果我使用相对路径,import{ServiceStub}从“./../utilities/service stub”导入,import可以与ES6一起正常工作代码>。但我想避免相对路径。哦,对了,我误解了你的问题。任何机会从“src/utilities/service stub”导入{ServiceStub}代码>工作正常吗?(我认为它不应该)如果它没有-尝试将resolve:{modulesDirectories:['node_modules','.],}
添加到网页包配置中