Я пытаюсь создать глобальный модуль в узле js, который будет содержать основное приложение Vue / Express. Я пытаюсь запустить внешний интерфейс Vue через мой глобальный модуль и сделать мое приложение доступным по всему миру:)
Я устанавливаю свой модуль, зайдя в каталог и напечатав:
npm install -g .
У меня есть главный файл index.js, в котором у меня есть код, но по какой-то причине он не работает. Я не могу использовать свой модуль глобально, каждый раз при запуске я получаю сообщение об ошибке «ENOET», а не такой модуль.
Вот мой index.js
#!/usr/bin/env node
const spawn = require('child_process').spawn;
console.log('Dir name');
console.log(__dirname);
// spaws node process
let child = spawn('./node_modules/@vue/vue-cli-service', [
'serve'
]);
child.stdout.on('data', function (data) {
process.stdout.write(data);
});
child.stderr.on('data', function (data) {
process.stdout.write(data);
});
child.on('exit', function (data) {
process.stdout.write('I\'m done!');
});
и мой пакет. Json
{
"name": "test-app",
"version": "0.1.0",
"private": true,
"preferGlobal": true,
"bin": {
"npm-analyzer": "./index.js"
},
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test-app-server": "node ./server/www",
"test-app-client": "npm run serve"
},
"dependencies": {
"axios": "^0.18.0",
"bulma": "^0.7.1",
"cors": "^2.8.4",
"express": "^4.16.3",
"font-awesome": "^4.7.0",
"node-sass": "^4.9.3",
"sass-loader": "^7.1.0",
"sort-by": "^1.2.0",
"vue": "^2.5.17"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.1",
"@vue/cli-plugin-eslint": "^3.0.1",
"@vue/cli-service": "^3.0.1",
"vue-template-compiler": "^2.5.17"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
Я думаю, что есть проблема со связыванием. Поскольку, если я открываю терминал и печатаю dirname, он всегда запускает один и тот же каталог, откуда я впервые установил пакет.