مشکل در نصب ویرایشگر StackEdit در فونیکس


#1

سلام به همه دوستان

من میخوام ویرایشگر StackEdit رو که با npm قابل استفاده هست در فریم ورک فونیکس نصب و استفاده کنم

در حالت نرمال طبق دستورات گفته شده در گیت جلو رفتم و با npm اجراش کردم

برای استفاده در فریم ورک فونیکس هم از روش هایی که وجود داره . من ۲ روش رو امتحان کردم که در یک روش موفق بودم ولی خب چون ساختار فایل شلوغ میشه میخوام از روش دوم استفاده کنم

روش اول اومدم سورس رو کامپایل کردم و خروجی js رو به همراه بقیه فایل های ثابت به داخل پوشه assets منتقل کردم .

محتوی فایل index.html رو هم به داخل فایل index.html.eex قرار دادم . کمی هم در فایل‌های خروجی مسیر رو اصلاح کردم ولی در هر صورت مشکلی بابت کارکرد نداشت .

روش دوم از npm استفاده کردم اومدم از این آموزش که نحوه نصب بوت استرپ رو در فونیکس یاد میده نگاه کردم . البته روش اول هم از این لینک استفاده کرده بودم .

طبق روشی که توضیح داد اول اومدم dependencies و devDependencies رو داخل فایل assets/package.json قرار دادم بعد دستورات زیر رو زدم

cd assets
npm install
npm audit fix

دوم انجام تنظیمات فایل assets/brunch-config.js بود که متوجه نشدم

برای همین سرچ کردم و لینک دیگه ای رو پیدا کردم
https://stackoverflow.solutions/question/show_question_details/119

طبق کارهایی که گفته بود انجام دادم

npm i stackedit
ولی خطا داشت

بعد رفتم پکیج هایی که نصب نمیشدن رو جدا نصب کردم

من از لینک های زیر استفاده کردم و بعد دوباره پکیج اصلی رو
npm i glup glup-concat
npm i stackedit
بعد چون پکیجها مشکل داشتند و قدیمی بودن با دستور زیر اکثرشون رو بروز کردم
npm audit fix

داخل app.js
import "stackedit"

global.stackedit = require("stackedit")

فایل app.css رو به app.scss تغییر دادم و خط زیر رو بهش اضافه کردم

@import 'node_modules/stackedit'


package.json:
  "dependencies": {
    "stackedit": "^5.11.4"
  },
brunch-config.js:
  npm: {
    enabled: true,
    whitelist: [
      "stackedit"
    ],
  }

این روش هم مشکل رو حل نکرد

توی کنسول مرورگر این خطا رو دارم

4

پکیج express از وابستگی‌های کتابخونه stackedit هست . ولی با این حال من جداگانه و با استفاده دستور زیر اون رو نصب کردم
npm install - -save-dev express
ولی مشکل حل نشد
محتویات فایل stackedit/index.js

const env = require('./config/prod.env');

Object.keys(env).forEach((key) => {
if (!process.env[key]) {
process.env[key] = JSON.parse(env[key]);
}
});

const http = require('http');
const express = require('express');

const app = express();

require('./server')(app, process.env.SERVE_V4);

const port = parseInt(process.env.PORT || 8080, 10);
const httpServer = http.createServer(app);
httpServer.listen(port, null, () => {
console.log(`HTTP server started: http://localhost:${port}`);
});

// Handle graceful shutdown
process.on('SIGTERM', () => {
httpServer.close(() => {
process.exit(0);
});
});

یک آموزش دیگه ای هم پیدا کردم

البته هنوز کامل نخوندم .


#2

Phoenix از package manager
brunch استفاده میکنه شما اگه این پست دنبال کنید باید درست بشه


#3

سلام . من از سایتی که شما معرفی کردید استفاده کردم مثال توی پست رو امتحان کردم مشکلی نداشت . طبق اون جلو رفتم و برای stackedit هم پیاده کردم . یه مشکل برای کتابخونه ها وجود داشت همه رو حذف کردم و دوباره با npm نصب کردم که مشکل امنیتی نداشت باشن . کامپایل که کردم این خطا رو داده

error: Processing of node_modules/indexeddbshim/dist/indexeddbshim.js failed. Error: Could not load module './CFG' from '/home/mojtaba/Desktop/shahryar/elixir/stackedit2/assets/node_modules/indexeddbshim/dist'. Make sure the file actually exists.

برای رفع این خطا محتویات پوشه src در ماژول node_modules/indexeddbshim رو منتقل کردم به پوشه dist

بعد یه مشکل دیگه دارم الان توی کنسول مرورگر این خطا رو میده

Uncaught SyntaxError: Unexpected token export

چک کردم مربوط به فایل App.js کامپایل شده هست که همه کدهای js میره توش . خطای بالا اشاره میکنه به این خط

export default CFG

من برای اینکه این کتابخونه indexeddbshim مشکل ایجاد نکنه . به صورت موقتی کدهاشو که مربوط به stackedit بود غیر فعال کردم . دوباره کامپایل کردم . خطای کامپایل نداشتم ولی توی کنسول مرورگر این خطا رو داشتم
Uncaught SyntaxError: Unexpected string که مربوط به این خط هست

import './emojiExtension'

و stackedit هم بالا نیومد


#4

به نظر این مشکل کتابخانه هستش در repository کتابخانه پست کنید شاید راهنمایی کنن