gpt4 book ai didi

javascript - 无法在 Riot JS 中的服务器端请求标签

转载 作者:行者123 更新时间:2023-12-03 04:38:27 28 4
gpt4 key购买 nike

当我声明:require('./public_html/Tags/blog_post_details.tag')时,我收到以下错误:

E:\WORKSPACE\NETBEANS_WORKSPACE\MyProject\public_html\Tags\blog_post_details.tag:1
(function (exports, require, module, __filename, __dirname) { <blog_post_details >
^

SyntaxError: Unexpected token <
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (E:\WORKSPACE\NETBEANS_WORKSPACE\MyProject\server.js:7:1)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)

路径是正确的,因为此行有效 var commonsFile = require('./public_html/Tags/commons.json');

WebPack 配置文件:

var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: './index.js',
output: {
path: __dirname,
filename: 'public_html/assets/js/bundle.js'
},
resolveLoader: {
root: path.join(__dirname, 'node_modules')
},

module: {
preLoaders: [{
test: /\.tag$/,
exclude: /node_modules/,
loader: 'riotjs-loader',
query: {
//type: 'none'
//compact: true
}
}],
loaders: [
/*{
test: /\.tag$/,
loader: 'tag',
exclude: /node_modules/
},*/
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
//commenting because of this issue https://github.com/mapbox/mapbox-gl-js/issues/3422
// presets: ['es2015']
}
}
]
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.ProvidePlugin({
riot: 'riot'
})
]
};

最佳答案

Node require 函数仅识别以 .js 结尾的 Javascript 文件、以 .json 结尾的 JSON 文件和 结尾的文件。 Node 用于 Node 运行时的二进制扩展。对于 Javascript 文件,如果 Node 的模块系统可以找到该文件或模块(即在 node_modules 下),则可以省略尾随的 .js

从您的示例来看,您似乎正在尝试从客户端代码使用require。除非您使用 browserifywebpack 或其他提供自己的客户端版本 require 的客户端 bundler ,否则您无法使用它。

正如我在下面的评论中所指出的,您提供的视频链接显示了客户端通过webpack加载标签文件的代码。您需要检查 webpack 的配置,以确保它正确捆绑您的标签文件以传送到浏览器。再次从视频中,示例代码从 ./tags/filename.tag 加载其标记文件,其中该路径的根由 webpack 定义。

关于javascript - 无法在 Riot JS 中的服务器端请求标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193538/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com