Как собрать пакет npm, чтобы он мог быть импортирован / необходим - PullRequest
0 голосов
/ 13 февраля 2019

Я собрал пакет npm и опубликовал его на NPM.

Когда я npm install <my-package>, а затем import MyPackage from "@Acme/MyPackage"; в ответ, я получаю следующую ошибку.

Модуль не найден: Можетне могу решить @ Acme / MyPackage

Это из-за того, как я настроил свой пакет SDK.Вы можете найти конфигурацию веб-пакета, которую я использую, чтобы построить его ниже.

Кстати, это работает, если я импортирую тег скрипта прямо в заголовок, но как я могу импортировать его таким образом, без специального определения тега скрипта в заголовке?

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 голосов
/ 13 февраля 2019

Кажется, import не знает, откуда импортировать пакет, но, поскольку он уже находится в вашей папке node_modules, я собираюсь догадаться, что либо у вас нет файла index.js, либо выВы не определили ваш основной входной файл для вашего пакета.

Каждый пакет NPM будет искать файл index.js, но если вы захотите переименовать его, вы можете определить его в своем package.json

{
  "name": "yourpackage",
  "version": "x.x.x",
  "main": "another-name.min.js",
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...