我新创建一个小的npm库,使与API的接口更整洁,我的文件夹结构如下:
dist/
index.js
src/
index.js
endpoints/
endpoint1.js
package.json
webpack.config.js
src/index.js文件中有如下问题:
import {endpoint1} from './endpoints'module.exports = class lib {
...
}
当使用webpack构建项目时,抛出错误:Module not found: Error: Can’ t resolve ‘ ./endpoints’ in ‘ my\project\dir\src’ 。
Webpack.config.js文件配置如下:
const path = require('path');
module.exports = {
mode: 'production',
entry: path.join(__dirname, '/src/index.js'),
output: {
path: path.resolve('dist'),
filename: 'index.js',
libraryTarget: 'commonjs2'
},
module: {
rules: [
{
test: /.js?$/,
exclude: /(node_modules)/,
use: 'babel-loader'
}
]
},
resolve: {
modules: [path.resolve(__dirname, 'src/endpoints')
],
extensions: ['.js']
}
};
分析和解决问题
正确的导入方式如下:
import endpoint1 from 'endpoint1';
通过使用resolve.modules,你可以设置让webpack在那个文件夹中查找非相对路径,模块名为“enpoint1”。
【当导入有模块的目录时,webpack出错,如何解决()】不过,使用库导入会更合适,这样可以在整个项目中使用,一个相对的导入会更合适,如下:
import endpoint1 from "./endpoints/endpoint1";
推荐阅读
- VueJS开发10个常见知识点整理和问题解析合集
- 在C和Java中找到给定链表的中间部分
- Python MongoDB drop_index查询用法介绍
- C++中的变量使用详细指南
- C#中的ValueTuple结构介绍
- JS完整表格介绍
- PHP Ds Deque filter()函数用法介绍
- 数据结构(在Scala中的HashSet用法指南)
- NoSQL数据库(MongoDB简介)