安装 Shadowsocks
确保 Shadowsocks 已经安装在你的系统上,如果你使用的是 Node.js,可以安装它从 npm 官方网站:
npm install @shadowsocks/shadowsocks
设置配置环境
Shadowsocks 需要配置一个 shadowsocks.config.js 文件,其中包含跨平台应用的环境变量和配置选项。
1 定义跨平台应用的环境变量
在 shadowsocks.config.js 中,定义跨平台应用的路径和环境变量:
export default function config() {
const {baseUrl, paths, basePort, baseName, appDir, appName, port } = require('path').paths({
default: {
paths: {
web: ['./web'],
mobile: ['./mobile']
}
}
});
const {baseUrl } = require('baseUrl');
return {
shadowsocks = {
basePort = basePort,
baseName = baseName,
appDir = appDir,
appName = appName,
port = port,
useStrict = true,
prependPath = true,
useCache = true,
urlDir = baseUrl + '/' + baseName,
urlName = baseUrl + '/' + baseName + '/' + appName,
urlDirDir = baseUrl + '/' + baseName + '/' + appName + '/' + appName,
urlDirDirDir = baseUrl + '/' + baseName + '/' + appName + '/' + appName + '/' + appName,
},
scripts = {
web: {
path = urlDirDirDir,
language: 'en-US',
src = 'web.js',
runOnce = true,
},
mobile: {
path = urlDirDirDir,
language: 'en-US',
src = 'mobile.js',
runOnce = true,
},
},
plugins = {
web: {
module = 'webjs.netlify',
options: {
plugins: [
{
package: 'netlify'
}
],
},
},
mobile: {
module = 'mobilejs.netlify',
options: {
plugins: [
{
package: 'netlify'
}
],
},
},
},
};
}
export default config;
2 定义跨平台应用的路径
在 shadowsocks.config.js 中,定义跨平台应用的路径:
export default function config() {
const {baseUrl, paths, basePort, baseName, appDir, appName, port } = require('path').paths({
default: {
paths: {
web: ['./web'],
mobile: ['./mobile']
}
}
});
const {baseUrl } = require('baseUrl');
return {
shadowsocks = {
basePort = basePort,
baseName = baseName,
appDir = appDir,
appName = appName,
port = port,
useStrict = true,
prependPath = true,
urlDir = baseUrl + '/' + baseName,
urlName = baseUrl + '/' + baseName + '/' + appName,
urlDirDir = baseUrl + '/' + baseName + '/' + appName + '/' + appName,
urlDirDirDir = baseUrl + '/' + baseName + '/' + appName + '/' + appName + '/' + appName,
},
scripts = {
web: {
path = urlDirDirDir,
language: 'en-US',
src = 'web.js',
runOnce = true,
},
mobile: {
path = urlDirDirDir,
language: 'en-US',
src = 'mobile.js',
runOnce = true,
},
},
plugins = {
web: {
module = 'webjs.netlify',
options: {
plugins: [
{
package: 'netlify'
}
],
},
},
mobile: {
module = 'mobilejs.netlify',
options: {
plugins: [
{
package: 'netlify'
}
],
},
},
},
};
}
export default config;
配置 Shadowsocks
在你的 Node.js 项目中,设置以下配置:
const shadowsocks = require('@shadowsocks/shadowsocks');
// 在你的项目根目录下,创建一个package.json文件:
// package.json
{
"name": " Shadowsocks例程",
"version": ".3.",
"private": true,
"scripts": {
"dev": "noargs build",
"build": "make",
"start": "start",
"lint": "lint"
},
"dependencies": {
@shadowsocks.netlify: "^1.."
},
"eslintConfig": {
"extends": [
"shadowsocks",
"netlify"
]
}
}
// 在你的项目根目录下,创建一个package.json配置文件:
// package.json
{
"name": " Shadowsocks例程",
"version": ".3.",
"private": true,
"scripts": {
"dev": "noargs build",
"build": "make",
"start": "start",
"lint": "lint"
},
"dependencies": {
"@shadowsocks.netlify": "^1.."
},
"eslintConfig": {
"extends": [
"shadowsocks",
"netlify"
]
}
}
安装 Shadowsocks
在你的 Node.js 项目根目录下,安装 Shadowsocks:
npm install @shadowsocks/shadowsocks
配置选项
Shadowsocks 提供了多种配置选项,可以在 shadowsocks.config.js 中进行设置:
1 配置 netlify 选项
{
scripts: {
web: {
path: shadowsocks.netlify
},
mobile: {
path: shadowsocks.netlify
}
}
}
2 配置 netlify 加载
{
plugins: {
web: {
module: 'netlify',
options: {
src: ['@netlify/npm', 'node_modules'],
plugins: [
{ name: 'netlify', default: 'netlify' }
]
}
}
}
}
配置应用
在你的应用中,配置 web.js 和 mobile.js 文件:
1 安装 Web.js
npm install -D web.js
2 安装 Mobile.js
npm install -D mobile.js
配置应用路径
在 web.js 和 mobile.js 文件中,指定路径:
web.js:
import { toString, parse, parseOptions } from '@shadowsocks.netlify';
export default function app() {
const { path, base, filename } = toString(parseOptions({
path: shadowsocks.netlify,
base: './web',
filename: 'index.html'
}));
import { create, parseOptions } from 'webjs';
return create(app, {
src: parseOptions({
path: '/web',
base: base,
filename: filename,
})),
{
download: true,
},
});
}
mobile.js:
import { toString, parse, parseOptions } from '@shadowsocks.netlify';
export default function app() {
const { path, base, filename } = toString(parseOptions({
path: shadowsocks.netlify,
base: './mobile',
filename: 'index.html'
}));
import { create, parseOptions } from 'mobilejs';
return create(app, {
src: parseOptions({
path: '/mobile',
base: base,
filename: filename,
})),
{
download: true,
},
});
}
配置应用的端点
在 web.js 和 mobile.js 文件中,配置应用的端点:
web.js:
import { toString, parse, parseOptions } from '@shadowsocks.netlify';
export default function app() {
const { path, base, filename } = toString(parseOptions({
path: 'http://localhost:3',
base: './web',
filename: 'index.html'
}));
import { create, parseOptions } from 'webjs';
return create(app, {
src: parseOptions({
path: '/web',
base: base,
filename: filename,
})),
{
download: true,
},
});
}
mobile.js:
import { toString, parse, parseOptions }

