如何构建一个npm包,以便能够导入/需要

时间:2019-02-13 15:54:26

标签: javascript reactjs npm

我已经构建了一个npm软件包并将其发布到NPM。

当我npm install <my-package>然后import MyPackage from "@Acme/MyPackage";做出反应时,出现以下错误。

未找到模块:无法解析@ Acme / MyPackage

这是因为我如何设置我的sdk软件包。您可以在下面找到用于构建它的webpack配置。

如果我直接在标头中导入脚本标签,这会起作用,但是如何在不专门在标头中定义脚本标签的情况下这样导入脚本标签?

webpack.config.js

const path = require('path');
// const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'my-package.min.js',
        libraryTarget: 'umd',
        library: 'MyPackage'
    },
    devtool: 'source-map',
    resolve: {
        extensions: ['.js'],
    },
    module: {
        rules: [
            {
                test: /\.(js)$/,
                use: 'babel-loader'
            }
        ]
    },
    node: {
        console: false,
        global: true,
        process: true,
        __filename: 'mock',
        __dirname: 'mock',
        Buffer: true,
        setImmediate: true,
        fs: 'empty',
        net: 'empty',
        tls: 'empty'

        // See "Other node core libraries" for additional options.
    },
    plugins: [
        // new UglifyJSPlugin({ sourceMap: true }),
        new CopyWebpackPlugin([
            { from: 'test/index.html', to: '' }
        ]),
    ],
};

1 个答案:

答案 0 :(得分:1)

import似乎不知道从何处导入软件包,但是由于它已经在您的node_modules文件夹中,因此我想您可能没有{{ 1}}文件,或者您尚未为包定义主条目文件。

每个NPM软件包都会寻找一个index.js文件,但是如果您想重命名它,则可以在index.js中定义它

package.json