【问题标题】:How would I import a module within an npm package subfolder with webpack?如何使用 webpack 在 npm 包子文件夹中导入模块?
【发布时间】:2016-04-21 18:57:23
【问题描述】:

假设node_modules 中有一个名为 foo 的包,我想通过 webpack 和 babel 将一个模块导入库中,例如 foo/module...

import Foo from 'foo'; 有效

import SomeOtherModule from 'foo/module'; 失败并显示以下内容:

找不到模块:错误:无法解析模块“foo/module” /Users/x/Desktop/someproject/js

这使得 webpack 看起来像是在错误的位置而不是 node_modules 寻找文件

我的 webpack.config 如下所示:

var webpack = require('webpack');
var path = require('path');

module.exports = {
    entry: ['babel-polyfill','./js/script.js'],
    output: {
        path: __dirname,
        filename: './build/script.js'
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel',
                query: {
                    cacheDirectory: true,
                    presets: ['es2015']
                }
            }
        ],
    },
    plugins: [
        new webpack.NoErrorsPlugin()
    ],
    stats: {
        colors: true
    },
    devtool: 'source-map'

};

【问题讨论】:

  • 请显示 foo 模块的文件和文件夹结构

标签: npm webpack babeljs


【解决方案1】:

它应该适用于import 'foo/module';。它将解析文件 ./node_modules/foo/module.js./node_modules/foo/module/index.jsnot 类似 ./node_modules/foo/node_modules/module/index.js 的东西(如果它预期)(在这种情况下,您最好通过 npm 安装模块)。

【讨论】:

  • 该模块的结构是 ./node_modules/foo/module/index.js 无法解析
  • 我签入了测试项目,它工作正常,当我将 ./node_modules/foo/module/index.js 重命名为 ./node_modules/foo/module/index1.js ,运行 webpack 时,它说“无法解析 /home/user/www/so-2/js 中的模块 'foo/module'。那么,也许你的文件名有错字?
  • 哦,你是对的,模块 foo 有一个文件夹 src 所以 import from foo/src/module 工作谢谢
  • @DmitryYaremenko 如果文件本身具有以下路径:foo/src/module.js,是否可以通过import 'foo/module';module.jsfile 导入?我不希望 src/ 子目录在导入时出现在路径中...
  • @tonix 你可以尝试添加别名:webpack.js.org/configuration/resolve,类似foo: "foo/src"
【解决方案2】:

您可以使用package.json 中的module 属性定义自定义路径。示例:

{
  ...
  "module": "dist/mylib.min.js",
  ...
}

What is the "module" package.json field for?

【讨论】:

猜你喜欢
  • 2021-09-22
  • 2017-11-04
  • 1970-01-01
  • 2018-01-29
  • 2019-12-21
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
相关资源
最近更新 更多