Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 如何使用我的模块作为我的项目中的外部库与网页?_Webpack_Ecmascript 6_Es6 Modules - Fatal编程技术网

Webpack 如何使用我的模块作为我的项目中的外部库与网页?

Webpack 如何使用我的模块作为我的项目中的外部库与网页?,webpack,ecmascript-6,es6-modules,Webpack,Ecmascript 6,Es6 Modules,我试图在我的项目中将我的模块用作外部库。 以下是我的库的代码: // src/index.js export default { test: 'Hello there' } "main": "dist/index.js", "module": "src/index.js", 这是我的库的package.json: // src/index.js export default { test: 'Hello there' } "main": "dist/index.

我试图在我的项目中将我的模块用作外部库。 以下是我的库的代码:

// src/index.js
export default {
    test: 'Hello there'
}
  "main": "dist/index.js",
  "module": "src/index.js",
这是我的库的
package.json

// src/index.js
export default {
    test: 'Hello there'
}
  "main": "dist/index.js",
  "module": "src/index.js",
这就是我在项目中导入它的方式:

import { test } from 'my-library'
import external from 'my-library'

console.log(test) // logs undefined
console.log(external.test) // logs 'Hello there'
module: {
        rules: [
            {
                test: /\.js$/,
                // exclude: /node_modules/,
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/react'],
                    plugins: ['transform-class-properties']
                }
            },
        ]
}
为什么解构不起作用? 以下是我的项目的网页配置:

import { test } from 'my-library'
import external from 'my-library'

console.log(test) // logs undefined
console.log(external.test) // logs 'Hello there'
module: {
        rules: [
            {
                test: /\.js$/,
                // exclude: /node_modules/,
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/react'],
                    plugins: ['transform-class-properties']
                }
            },
        ]
}

此语法
import{symbol}from'library'
用于导入非默认导出,而此语法
import someNamespace from'my library'
用于导入默认导出,并且由于您的模块只有默认导出,因此您必须使用第二个语法来正确获取它,这就是为什么第一次导入返回未定义的

如果您将模块的内容更改为以下内容

export const test = 'Hello there'
然后第一次导入将使
控制台.log()
打印
Hello here
,而第二次导入将抛出一个错误,因为您的模块缺少默认导出