Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

137
Views
Unable to require tag on server side in Riot JS

When I declare: require('./public_html/Tags/blog_post_details.tag'), I get the following error:

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)

The path is correct because this line works var commonsFile = require('./public_html/Tags/commons.json');

WebPack config file:

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'
        })
    ]
};
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

The node require function only recognizes files ending in .js for Javascript files, .json for JSON files, and .node for binary extensions to the Node runtime. In the case of Javascript files, you can omit the trailing .js if the file or module can be found by Node's module system (i.e. under node_modules).

From your example, it appears that you are attempting to use require from client-side code. Unless you use browserify, webpack or another client-side bundler which provide their own client-side version of require, you cannot use it.

As noted in my comment below, the video link you provide shows client-side code loading tag files via webpack. You'll need to check webpack's config to assure it is properly bundling your tag files for delivery to the browser. Again from the video, the example code is loading its tag file from ./tags/filename.tag where the root of that path is defined by webpack.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!