Компилировать один компонент Marko с помощью веб-пакета - PullRequest
2 голосов
/ 18 января 2020

как мне скомпилировать один компонент marko. js с помощью webpack или marko-cli, чтобы я мог использовать его как модуль npm из реестра npm?

Компонент работает хорошо в моих проектах как интегрированный компонент, но когда я устанавливаю его как модуль npm, я получаю сообщение об ошибке типа «класс {не разрешен», потому что компонент не компилируется.

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

Конфигурация Webpack

const path = require('path')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

// Get node environment
const { NODE_ENV } = process.env
const isDev = NODE_ENV === 'development'
const env = isDev ? 'development' : 'production'

// Define webpack config
module.exports = {
    mode: env,
    entry: {
        app: ['./client.js'] // I have tried ./component/index.marko also
    },
    output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'dist')
    },
    resolve: {
        extensions: ['.marko']
    },
    module: {
        rules: [
            {
                test: /\.marko?$/,
                loader: '@marko/webpack/loader'
            },
            {
                test: /\.(sass|scss|css)$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    'css-loader',
                    'sass-loader'
                ]
            },
            {
                test: /\.svg/,
                loader: 'svg-url-loader'
            }
        ]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: '[name].css'
        })
    ]
}

Компонент Marko

-- Hello World!

клиент. js

require('./component/index.marko')
require('marko/components').init()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...