Tag: isomorphic javascript

是否有可能使用Webpack绑定节点库,所以导致的代码将与execjs工作?

我的服务器端是轨道,我试图做同构呈现与反应和中继。 我发现的唯一方法是使用npm模块同构中继。 显然它使用节点获取,而这又是使用“http”库。 是否有可能使用webpack(或其他工具)来创build包含所有代码的单个包,然后使用execjs(以Node作为引擎)运行它? 当我使用节点作为目标webpack叶'http'作为外部需求,假设节点将加载它,所以execjs不能运行它… 细节: 我的源文件是单行 require('isomorphic-fetch'); 使用webpackconfiguration: target: 'node', output: { path: path.join(__dirname, '..', 'public', 'webpack'), publicPath: '/webpack/', filename: 'server-bundle.js', libraryTarget: 'commonjs2' }, 结果包包括各种要求,如下所示: /* 3 */ /***/ function(module, exports) { module.exports = require("url"); /***/ }, /* 4 */ /***/ function(module, exports) { module.exports = require("http"); /***/ }, /* 5 */ /***/ function(module, […]

使用Webpack中为客户端定义的别名反应呈现,但有问题

使用Webpack中定义的Alias为客户端反应呈现,但是当尝试在使用Express的Node服务器上呈现问题时。 我已经在webpack例子中定义了一些别名 resolve: { extensions: ['', '.js', '.jsx', '.cjsx', '.coffee', '.json'], alias: { pages: path.join(__dirname, 'js/MGPages.js'), } }, 但是当需要我在节点服务器上的主要应用程序文件时,我得到以下错误 Error: Cannot find module 'pages' 客户端别名工作正常,但我怎么能在节点服务器端解决这个问题。 我不想在客户端的反应组件上更改导入文件的代码。

同构应用程序中的用户configuration文件

我目前正在使用React,Redux,Express和Node来添加login,以及一系列与login相关的高级function。 对于实际的login,我使用Passport,使用Facebook,Google和Twitter策略。 获取所需的令牌后,会将其发送到AWS Cognito联合身份标识以获取用户的同步数据。 来自网站的数据也会在需要时同步回Cognito。 在用户login后,我可以在Node服务器上构build一个完整的用户configuration文件,但是现在呢? // server.jsx // imports …………. // variables …………. var userProfile; // logging the user with Passport and adding it to the profile …………. app.use((req, res) => { // I can do whatever I want with the profile here …………. // handling the request and creating an initial state .. […]

使用webpack,我可以将Node.js和浏览器代码放在同一个文件中,但阻止Node.js代码将其传送到浏览器?

我有一个文件,我想同时具有Node.js和浏览器代码。 Node.js代码不应该在浏览器中可见。 webpack可以根据环境从文件中排除代码吗? 有点像C预处理指令。 #if #else, etc 。 我知道Webpack对代码进行了相当深入的分析,这让我认为它可以。 约束 Node.js代码无法访问浏览器,因为它可能包含敏感的configuration选项。 我希望浏览器和节点代码在同一个文件中。 我知道我可以使用webpack.IgnorePlugin忽略需要在文件的基础上,或将共享代码在浏览器中的文件,并要求从服务器(我现在正在做),但我想知道是否有可能将代码并排放在同一个文件中。 编辑:这是我想要做的一个例子。 export class FooPlugin { $name = 'foo-plugin' register(app) { const app = koa() app.get('/foo', () => { this.send('foo') }) app.set('SECRET STUFF!') app.start() this.shared() } shared(app) { // browser things – isomorphic react router routes, etc. } registerBrowser(app) { this.shared() } } […]

使用PHP api服务器响应Web服务器

当Node / React Web服务器和PHP api服务器之间进行通信时,最好的做法是通过Web服务器“代理”客户端(React)的所有请求,而不是直接传递给api服务器? 我使用通用(同构)React呈现在节点的Web服务器上。 它也将使用api服务器来构build初始页面加载(同构)。

我是否需要同构JavaScript应用程序中的dynamic元标记?

我有一个同构的Web应用程序。 现在我不更新元标签客户端。 我看到有大量的库处理这个问题。 但是,甚至有必要? 当Google抓取一个网站时,是否会在跟踪链接时进行“页面刷新”,或者导航到“客户端”?

如何使用Catberry框架通过URIpath段设置应用程序语言?

例如,我使用catberry-ln插件我想定义应用程序的语言是这样的: www.example.com/en www.example.com/de www.example.com/ru

使用Catberry Framework构build独特组件ID的最佳实践是什么?

Catberry对零部件有要求 – 它们的所有ID必须是唯一的。 如果您有复杂的嵌套组件层次结构,build立唯一ID的最佳做法是什么?

(React)与webpack同构的webapp的服务器部分,包括CSS的样式加载器

我正在尝试使我正在开发的React应用程序是同构的。 这样做的一个已知的问题是,webpack加载器允许import/require非JavaScript资产,如CSS文件。 例如 // ExampleComponent.jsx import Select from 'react-select'; import 'react-select/dist/react-select.css'; 如果使用Express构build应用程序,则节点将获取到此导入,并因为无法处理CSS文件而失败,因此仅期望JavaScript(并且感谢babel-register JSX)。 其中一个解决方法是在构build服务器端应用程序(包括所有通用部分,如组件,因为它是一个同构应用程序)时,使用webpack中的target: 'node'选项来构build服务器端代码。 这应该会导致server.js被构build,然后可以由节点运行。 注:我知道还有其他的方法来解决这个问题(比如不使用import/require来包含任何不是javascript的东西,但是在这个应用程序开发的这个阶段是不实际的。 // webpack.config.js var webpack = require('webpack'); var path = require('path'); module.exports = [ // Client build { entry: { 'bundle.min': [ 'bootstrap-webpack!./bootstrap.config.js', 'babel-polyfill', './client/index.jsx' ], 'bundle': [ 'bootstrap-webpack!./bootstrap.config.js', 'babel-polyfill', './client/index.jsx' ] }, output: { path: './dist', filename: '[name].js' […]

webpack – 在服务器上重新加载热模块

Webpack热重载(webpack-hot-middleware)为客户提供了极好的服务。 它会在文件发生更改时重build和更新客户端上的资产。 但是对于服务器需要预渲染HTML响应的通用/同构服务器来说,这是非常困难的。 天真的解决scheme是,每当文件发生变化时,重新启动服务器(例如使用nodemon),但是这会closures所有的客户端连接,而对于大型服务器来说,这是非常缓慢的。 稍微好一点的解决scheme是手动观看资产(例如chokidar),并在文件更改后再次清除caching/需求。 但是,当需要监视依赖关系时,这需要更多的复杂性。 文件必须parsing以确定他们需要什么。 此外,如果代码库是以编译为js语言编写的,则最好运行编译服务器进行生产(不再有babel-node)。 使用编译的服务器,不再可能使用上述机制,因为: webpack对dynamic需求的支持很差: require(variable)而不是require('./file.js') 节点本身不需要代码 在我的例子中,我已经将require函数抽象成了一个使用babel-register ed require的包(之前我使用过babel API,但是依赖于很多未公开的节点源)。 这是我目前在https://github.com/edge/cyc中使用的解决scheme,这个解决scheme有点用处,但它是随意的,并且有很多警告。 一般来说,与webpack并行编写的定制代码越多,越偏离期望的行为。 有没有一个强大的方法来更容易地复制webpack的行为?