Почему `. / Node_modules / .bin / rollup` имеет другой контекст, чем сценарии package. json? - PullRequest
0 голосов
/ 21 марта 2020

У меня есть следующий плагин Rollup ...

function myExample() {
  return {
    name: 'string-sass', // this name will show up in warnings and errors
    load(id) {
        if(id.endsWith('.scss')){
            const a = execSync(`sass ${id} --load-path=node_modules`);
            return {
                code: `export default \`${a.toString('utf8')}\``,
                map: null
            }
        }
        else{
            return null;
        }
    }
  };
}

Он отлично работает, когда я запускаю ./node_modules/.bin/rollup -c rollup.config.mjs. Однако теперь я хочу использовать скрипт npm, поэтому я добавляю в свой пакет следующее: json ...

"scripts": {
    "rollup": "rollup -c rollup.config.mjs",
},

Но когда я запускаю npm run rollup, ничего больше не меняя, я получаю. ..

Ошибка: ожидается di git.

Это типичная ошибка, когда не удается найти файл @use. Поэтому я предполагаю, что рабочий каталог для двух команд различен, но я не уверен.

Может кто-нибудь помочь мне понять, что происходит?

Обновление

Я попытался обновить до ...

const a = execSync(`sass ${id} --load-path=${path.resolve('node_modules')}`);

, который затем делает команду ...

sass /.../ui/src/components/viewport/index.style.scss --load-path=/.../ui/node_modules

Этот запуск работает локально, проходит через ./node_modules/.bin/rollup, но вызывает Сценарий npm завершается неудачно таким же образом.

...