Запустить скрипт npm модуля узла для веб-пакета? - PullRequest
0 голосов
/ 23 июня 2018

У меня есть скрипт npm, который ...

"theme: "cd node_modules/mylib && npm install && npm run build"

А у моего mylib есть скрипт npm, который ...

"build": "webpack --config webpack.config.js"

Все работает до тех пор, пока часть веб-пакета, которая выдает много этих ошибок, вот одна ...

ERROR in ./src/components/DataGrid/DataGridBody/DataGridBody.js
Module parse failed: Unexpected token (8:8)
You may need an appropriate loader to handle this file type.
|
| const DataGridBody = props => {
|   return <tbody>{props.children}</tbody>;
| };
|
 @ ./src/components/DataGrid/DataGridBody/index.js 1:0-41
 @ ./src/components/DataGrid/index.js
 @ ./src/components/index.js

Но если я запускаю этот скрипт в репозитории mylib, он отлично работает.

const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
  entry: path.join(__dirname, 'src', 'components', 'index.js'),
  output: {
    libraryTarget: 'commonjs',
    library: '',
    path: path.resolve(__dirname, 'dist/themes'),
    filename: '[name].css',
  },
  module: {
    rules: [{
        test: /\.jsx?$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react'],
            plugins: [require('@babel/plugin-proposal-object-rest-spread')],
          },
        },
      },
      {
        test: /\.s?css/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: [{
              loader: 'css-loader',
              options: {
                modules: true,
                sourceMap: true,
                importLoaders: 1,
                localIdentName: '[local]',
              },
            },
            {
              loader: 'postcss-loader',
              options: {
                sourceMap: true,
                ident: 'postcss',
                plugins: loader => [require('autoprefixer')({
                  grid: true
                })],
              },
            },
            {
              loader: 'sass-loader',
              options: {
                sourceMap: true,
              },
            },
          ],
        }),
      },
    ],
  },
  plugins: [new ExtractTextPlugin({
    filename: '[name].css'
  })],
};

Я пытался добавить require.resolve к пресетам, но все равно получаю ту же ошибку. Я думаю, что веб-пакет имеет проблемы с разрешением загрузчика и пресетов. Я просто хочу запустить webpack и конфигурацию из папки node_modules как средство для генерации CSS, который я могу скопировать позже.

Я что-то упускаю?

...